Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态类成员?_C#_Dynamic_.net 4.5 - Fatal编程技术网

C# 动态类成员?

C# 动态类成员?,c#,dynamic,.net-4.5,C#,Dynamic,.net 4.5,是否可以使用动态类成员?比如说 class blarg { public dynamic ctx = new ExpandoObject(); } 也不需要使blarg从DynamicObject继承(并实现)?是。您可以在任何类中创建字段或属性动态 如果希望类本身是动态的,则只需要从dynamicbject继承(从技术上讲,您需要实现IDynamicMetaObjectProvider,但这通常是通过dynamicbject完成的);首先,dynamic无论如何都可以使用反射/元编程,因此您

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

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

也不需要使blarg从
DynamicObject继承(并实现)

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


如果希望类本身是动态的,则只需要从
dynamicbject
继承(从技术上讲,您需要实现
IDynamicMetaObjectProvider
,但这通常是通过
dynamicbject
完成的);首先,
dynamic
无论如何都可以使用反射/元编程,因此您只需附加一个带有成员的常规类,它就可以工作了-但您将无法添加新成员等。其次,“支持完整的
dynamic
所需要做的一切”是实现
IDynamicMetaObjectProvider
,而不是继承某些内容。“全部”用引号括起来,因为这不是小事
DynamicObject
的存在是为了帮你完成一些繁重的工作,而
ExpandoObject
则是为了你只需要一个财产包


但是由于调用者没有绑定到任何特定类型(因为他们使用的是
dynamic
),坦率地说,从
DynamicObject
继承并不是什么大问题,您确实不清楚要做什么。请澄清问题。在任何类中都可以有
动态
类型的字段。。。您尝试了什么,遇到了什么问题?有了这样的东西,启动LINQPad或Visual Studio并尝试它通常会更容易…我尝试了,并且出现了编译错误,因此出现了问题,但我发现了问题,我正在向动态声明中添加类型,如下所示:public dynamic ExpandoObject ctx=new ExpandoObject();