c# - 我如何按名称获取 System.Object 的属性
问题描述
我有一个类型的对象Microsoft.Azure.EventGrid.Models.EventGridEvent
。它有一个名为Data
type的属性System.Object
。我想访问itemId
. Data
如何获取 System.Object 属性的值?
解决方案
您必须向下转换为对象的实际类型。由于您知道您期望的对象的类型,这在大多数情况下应该有效,但我建议您进行一些错误处理以检测某些代码将值设置为Data
您不期望的类型的情况,或者无效的。就我个人而言,我喜欢与as
操作员一起检查向下转换,因为我觉得这很简洁,所以是这样的:
int GetItemId(EventGridEvent ev)
{
T dt = ev.Data as T // where T is the known concrete type that you've set
if(dt == null)
{
// ... error handling: what will you do if you find an unexpected type?
}
else
{
return dt.itemId;
}
}
推荐阅读
- python-3.x - 使用字典自动填充 python 模板
- c# - 未定义参数的 ASP.NET MVC 5 包罗万象的路由
- assembly - 如何在 nasm 中为 8086 连接汇编语言中的字符串
- r - 错误 - 名称属性与向量的长度不匹配
- javascript - 使用 react js 从 json 文件中提取数据
- android - FirebaseFirestore.getInstance() 和应用程序已停止
- sql - SQL 根据特定列和日期汇总小计
- c - 将联合作为宏中的两个参数之一传递
- python - 微软图形 API Python
- laravel-nova - 如何创建返回父列表的链接?