2012-02-17 11 views
-1

私は、ユーザーの要件ごとに、実行時に実行時に自動的にGetおよびSetプロパティを作成できますか?

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 "ユーザーはpropertyynameを指定する必要があります" {get; set;} .itはxml r sqlからでなければなりません。ランタイム。

+1

あなたはこれを必要と思う可能性はありますか? – Steven

+0

Sir私が実行時にプロパティ名を設定したい場合は、public string "userはpropertynameを与える必要があります" {get; set;} –

+1

はい、解決しようとしている問題は何ですか? – Steven

答えて

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 ....私はあなたがこれで何かを始めることができます願っています!

乾杯!

+0

この回答は私の質問とは関係ありません。 –

+0

ですから、実行時に既存のオブジェクトのプロパティの名前を変更したい場合は、これは不可能ですね! – Gohlool

+0

これは私にエラーが発生します。これを解決するにはどうすればいいですか?クラス名: { public object call() { dynamic expando = new ExpandoObject(); var p = expandoをIDictionaryとして使用; p ["Demo"] = "新しい値1"; } } class de {dynamic n = new nameex(); x.call(); n.Demo = 10; Console.WriteLine(n.Demo); –

0

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

+0

私はそのようなプログラムを作成する方法を説明することができます –

+0

私はあなたがあなたのプログラムをやろうとしていることを理解できないのですが、私はそれを行うためのプログラムを作成する方法を説明することはできません。 – Gabe

+0

class {dynamic n = new nameex(); nameex x =新しいnameex(); x.call(); n.Demo = 10; Console.WriteLine(n.Demo); }クラス名{public object call() { 動的expando =新しいExpandoObject(); var p = expandoをIDictionaryとして使用; p ["Demo"] = "新しい値1"; } }これは私にエラーを与える..これを解決する方法 –

関連する問題