我可以在 C# 中在运行时更改类的字段吗?
例如,如果我有课:
public class ExampleClass{
public string Name;
}
我可以在运行时更改它,使用反射或其他技术,将名称更改为 Name1?
public class ExampleClass{
public string Name1;
}
我可以在 C# 中在运行时更改类的字段吗?
例如,如果我有课:
public class ExampleClass{
public string Name;
}
我可以在运行时更改它,使用反射或其他技术,将名称更改为 Name1?
public class ExampleClass{
public string Name1;
}
不,您不能在运行时更改类型的实际成员
选项:
ExampleClass
,但有不同的成员 - 并且可能是它们之间的一些映射代码ICustomTypeDescriptor
or IDynamicMetaObjectProvider
- 这将允许某些框架将其视为具有Name1
,即使它实际上没有(注意:诸如DynamicObject
和ExpandoObject
包含的实现之类的东西IDynamicMetaObjectProvider
,但你可以以其他方式)var val = obj["Name1"];
返回有意义的东西