我可以改变一类的领域在运行时在C#中?
例如,如果我有类:
public class ExampleClass{
public string Name;
}
我可以改变它在运行时,使用反射或其他技术,改变了名称,以名称1?
public class ExampleClass{
public string Name1;
}
我可以改变一类的领域在运行时在C#中?
例如,如果我有类:
public class ExampleClass{
public string Name;
}
我可以改变它在运行时,使用反射或其他技术,改变了名称,以名称1?
public class ExampleClass{
public string Name1;
}
不,你不能在运行时改变类型的实际成员
选项:
ExampleClass
,却有着不同的成员-他们之间可能一些映射代码 ICustomTypeDescriptor
或IDynamicMetaObjectProvider
-这将使得一些框架来对待它,仿佛它有一个Name1
,即使它实际上没有(注:类似的事情DynamicObject
和ExpandoObject
包括实现IDynamicMetaObjectProvider
,但可以用其他方式做到这一点) var val = obj["Name1"];
返回有意义的事 看一看DynamicObject:
http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.aspx