【发布时间】:2011-07-15 10:18:20
【问题描述】:
我正在实现一个通用函数来从任意提供的动态对象中提取值,但不知道如何调用TryGetMember,因为它需要一个抽象的GetMemberBinder,因此我无法创建它。
示例...
public object GetValue(DynamicObject Source, string FieldName)
{
object Result = null;
GetMemberBinder Binder = x; // What object must be provided?
Binder.Name = FieldName;
if (Source.TryGetMember(Binder, out Result))
return Result;
throw new Exception("The field '" + FieldName + "' not exists");
}
是否已经存在 GetMemberBinder 的具体后代可供使用?还是创建我自己的实现的指南?
【问题讨论】:
-
我一定遗漏了一些东西……这整个方法不正是动态赋值运算符已经做的,除了不太可靠吗?
-
我的问题是关于获取动态对象的字段值,同时不知道该字段是如何命名的。因此,我无法编写代码,例如“var MyValue = TheDynamicObject.TheField;”因为只有在运行时才能获得字段名称。我正在编写一个通用类来处理外部提供的动态对象。