我需要在运行时创建一个类,而不需要知道确切的属性计数。属性的数量范围从1到10.有没有办法在C#中执行此操作?
我检查了ExpandoObject
购买它需要写出属性的名称。然而,我正在寻找的是在for循环中添加属性,有些像:
MyDyanmicClass.Add("PropertyName" , TYPE , VALUE);
答案 0 :(得分:0)
使用字典。
public Dictionary<string, object> properties = new Dictionary<string, object>();
因此字符串是属性的名称,对象表示属性本身。然后使用以下命令将属性添加到动态类中:
properties.Add("Ref", 123);
properties.Add("Description", "Underpants");
通过强制转换来获取值:
int ref = (int)properties["Ref"];
string description = (string)properties["Description"];
答案 1 :(得分:0)
在您的课程中,您应该有一个名为List<Tuple<string, object>>
的{{1}}字段,它存储您访问对象的密钥,实际对象和对象类型。
添加新属性的方法如下:
properties
要检索该属性,
public void AddNewProperty<T> (string name, T value) {
properties.Add (Tuple.Create<string, object> (name, value));
}