-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;}

ユーザーの要件に従って実行時に。Expandos または Dynamics を使用して Csharp でこれを行うことは可能ですか。実行時行にプロパティ名を設定するかどうかを尋ねています

public string "user has to give propertyname" {get;set;} .xml r sql から取得する必要がありますが、実行時にプロパティ名を設定したいと考えています。

4

2 に答える 2

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

かくかくしかじか ....

こんにちは今、私は新しい名前を取得しました

これで何かを始められるといいのですが!

乾杯!

于 2012-02-17T09:04:45.143 に答える
0

Reflection が提供するようなプロパティを追加したい場合、それは不可能です。クラスがコンパイルされると、それにメンバーを追加する方法はありません。ただし、プロパティを設定および取得できるようにしたい場合は、Expandoそれが目的であり、自動的に行われます。

于 2012-02-17T15:49:43.743 に答える