免責事項:この回答は 2008 年に書かれたものです。それ以来、状況は劇的に変化しました。
このページの他の回答、特に詳しく説明している回答を見てくださいMicrosoft.CodeAnalysis.CSharp.Scripting
。
残りの回答は最初に投稿されたままになりますが、もはや正確ではありません。
残念ながら、C# はそのような動的言語ではありません。
ただし、できることは、クラスとすべてを含む C# ソース コード ファイルを作成し、C# の CodeDom プロバイダーを介して実行し、それをアセンブリにコンパイルしてから実行することです。
MSDN のこのフォーラム投稿には、ページの下にいくつかのサンプル コードを含む回答が含まれてい
ます。文字列から匿名メソッドを作成しますか?
これが非常に良い解決策だとは言いませんが、とにかく可能です。
その文字列にはどのようなコードが期待されますか? それが有効なコードのマイナー サブセット (たとえば数式のみ) である場合は、他の代替手段が存在する可能性があります。
編集:まあ、それは最初に質問を徹底的に読むことを教えてくれます. はい、ここでリフレクションが役立ちます。
文字列を ; で分割した場合 まず、個々のプロパティを取得するには、次のコードを使用してクラスの特定のプロパティの PropertyInfo オブジェクトを取得し、そのオブジェクトを使用して特定のオブジェクトを操作します。
String propName = "Text";
PropertyInfo pi = someObject.GetType().GetProperty(propName);
pi.SetValue(someObject, "New Value", new Object[0]);
リンク: PropertyInfo.SetValue メソッド