Abe*_*Abe 5 c# indexing dynamic
有没有办法通过索引访问动态对象的属性?
List<dynamic> list = _dataStagingManager.GetStatusList(consoleSearch);
foreach (var row in list)
{
Console.WriteLine(row[0]);
Console.WriteLine(row[1]);
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,row[0] 的属性名称因存储过程列别名的结果而异。
一般来说,这是不可能的。例如,您可以创建一个具有所有可能属性的动态对象:
class AnythingGoes : DynamicObject
{
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = binder.Name;
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
您有机会获得属性列表。如果动态对象实际上是普通对象(未实现 的对象IDynamicMetaObjectProvider),则普通反射将正常工作。
如果该对象实际上是动态的(实现IDynamicMetaObjectProvider),您可以尝试调用从返回GetDynamicMemberNames()的。但是,正如上面的示例所示,这并不能保证有效。DynamicMetaObjectGetMetaObject()
| 归档时间: |
|
| 查看次数: |
7013 次 |
| 最近记录: |