-1

我想创建

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 Using Expandos 或 Dynamics 中执行此操作。我问是否要在运行时行中设置属性名称

公共字符串“用户必须提供属性名”{get;set;}。它必须来自 xml r sql 但我想在运行时设置属性名。

4

2 回答 2

0

如果您想添加一个属性,以便 Reflection 将其提供给您,那是不可能的。一旦一个类被编译,就无法向它添加成员。但是,如果您只是希望能够设置和获取属性,这就是目的,Expando它会自动执行此操作。

于 2012-02-17T15:49:43.743 回答
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();
    }

因此,如果您调用此函数,您将看到以下内容!

我的名字是测试

废话……

你好现在我有了一个新名字

我希望你能从这个开始!

干杯!

于 2012-02-17T09:04:45.143 回答