我正在寻找一种将成员动态添加到动态对象的方法。好的,我想需要澄清一下...
当你这样做时:
dynamic foo = new ExpandoObject();
foo.Bar = 42;
该Bar
属性将在运行时动态添加。但是代码仍然“静态地”引用 Bar(名称“Bar”是硬编码的)......如果我想在运行时添加一个属性而不知道它在编译时的名称怎么办?
我知道如何使用类的方法来使用自定义动态对象(实际上几个月前我在博客上写过DynamicObject
) ,但是如何使用任何动态对象来做到这一点?
我可能可以使用该IDynamicMetaObjectProvider
界面,但我不明白如何使用它。例如,我应该将什么参数传递给GetMetaObject
方法?(它期望一个Expression
)
顺便说一句,你如何对动态对象进行反射?“常规”反射并且TypeDescriptor
不显示动态成员......
任何见解将不胜感激!