我想创建
public object Value { get; set; }
public Type Type { get; set; }
public string Name { get; set; }
public string "user has to give propertyname" {get;set;}
在运行时根据用户要求。是否可以在Csharp中使用Expandos或Dynamics执行此操作。 我问如果我想在运行行中设置属性名称
public string“user必须提供propertyname”{get; set;} .it必须来自xml r sql但我想在运行时设置属性名称。
答案 0 :(得分:0)
我不确定您要求的是什么,但使用Expandos,您可以执行以下操作:
dynamic d = new ExpandoObject();
d.Name = "MyNameIsTest";
d.Age = 26;
d.Weight = 62.5d;
d.dosomethingforme = "blablabla ....";
d.GreetMe = new Action(delegate()
{
Console.WriteLine("Hello {0}", d.Name);
});
在您的代码中的某处,您可以使用以下内容:
public void ResolveDynamic(dynamic obj)
{
Console.WriteLine(obj.Name);
obj.Name = "Now I got a new name";
Console.WriteLine(obj.dosomethingforme);
obj.GreetMe();
}
所以如果你调用这个函数,你将得到以下信息!
MyNameIsTest
blablabla ....
你好我现在有一个新名字
我希望你能用这个来开始!
干杯!
答案 1 :(得分:0)
如果你想添加一个反射会给你的属性,那是不可能的。一旦编译了一个类,就无法向其中添加成员。但是,如果你只是想设置和获取属性,那就是Expando
的目的,它会自动完成。