0

是否可以使用动态类成员?例如

class blarg
{
public dynamic ctx = new ExpandoObject();
}

不让 blarg 从 ? 继承(和实现)DynamicObject

4

2 回答 2

2

是的。您可以dynamic在任何类中创建字段或属性。

如果您希望您的类本身是动态的DynamicObject,则只需要继承自(从技术上讲,您需要实现IDynamicMetaObjectProvider,但这通常是通过 来完成的)。DynamicObject

于 2013-01-29T20:01:49.087 回答
0

没有固定的继承结构;首先,dynamic无论如何都可以使用反射/元编程,所以你可以附加一个带有成员的常规类,它会工作 - 但你将无法添加新成员等。其次,你需要做的“所有”支持完全dynamic是实现IDynamicMetaObjectProvider- 不继承某些东西。“全部”用引号引起来,因为这不是微不足道的。DynamicObject存在为您做一些繁重的工作,就像ExpandoObject您只想要一个财产袋的情况一样。

但是由于调用者没有绑定到任何特定类型(因为他们正在使用dynamic),坦率地说,从DynamicObject.

于 2013-01-29T20:05:00.807 回答