我正在实现一个通用函数来从任意提供的动态对象中提取一个值,但不知道如何调用TryGetMember
,因为它需要一个抽象的GetMemberBinder
,因此我无法创建它。 样本...如何直接调用DynamicObject.TryGetMember?
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的已经存在的具体后代准备就绪?或创建我自己的实施指南?
我必须缺少一些东西...是不是这个完整的方法正是动态赋值运算符已经做了什么,除了不太可靠? – Aaronaught 2011-08-18 03:40:07
我的问题是关于获取动态对象的字段值,而不知道在合适的时间如何命名该字段。所以,我不能编码,例如,“var MyValue = TheDynamicObject.TheField;”因为只有在运行时才能获得字段名称。我正在编写一个通用类来处理外部提供的动态对象。 – 2011-08-18 06:09:42