可以模仿简单的JavaBean做法,例如:
public class A{ private String id; public String getId(){ return this.id; } public void setId(String id){ this.id = id; } }
我指的是元数据,即类的定义数据,不是属性的值
能在运行时做相关操作只有反射,但是反射也只能是 取值赋值调用方法 取实例,.net Framework 没有提供在运行时修改代码的方法,而且这样做会让程序变得不安全
这几天搜索下来确实是没办法,一个类型安全的系统就应该确保类型元数据创建后不可变,这个 CLR 必须保证的。
可以用委托来实现,不过委托只能对方法来操作,你可以通过这个来实现
没太看明白你的需求是什么,如果想实现动态属性的话,.net 4.0的 IDynamicMetaObjectProvider 就可以做到。
看看默认提供的 ExpandoObject 或 DynamicObject 是否满足你的要求。
直接使用dynamic,这样就可以随便变了
用接口
interface ITest { int A { get; set; } } class B : ITest { private int _a; public int A { get { return _a; } set { _a = value; } } }
这是很基本的面向对象的多态原则。
希望我的回答有用
很遗憾没用,我问得是元数据,不是属性值