如何为在1个属性到10个属性之间运行的类创建动态属性?

时间:2015-12-27 09:09:19

标签: c# .net

我需要在运行时创建一个类,而不需要知道确切的属性计数。属性的数量范围从1到10.有没有办法在C#中执行此操作?

我检查了ExpandoObject购买它需要写出属性的名称。然而,我正在寻找的是在for循环中添加属性,有些像:

MyDyanmicClass.Add("PropertyName" , TYPE , VALUE);

2 个答案:

答案 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));
}