2012-05-09 17 views
0

CodeDOM(.net)を使用して以下のようなステートメントを実行する方法を教えてください。CodeDomメソッドのシーケンス

_myClass.Configure("MyNode").Action("param1", "param2"); 

ありがとうございます。

答えて

2

あなたが作業しているクラスのフィールドであると仮定すると、フィールドへの参照を作成してグラフを作成します。

CodeExpression fieldReferenceExpression = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass") 

次に、あなたは、パラメータとして文字列値「MYNODE」の基本式で、フィールド上のConfigureメソッドを呼び出すと思います。

CodeExpression configureInvokeExpression = new CodeMethodInvokeExpression(
      new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass"), 
      "Configure", 
      new CodePrimitiveExpression("MyNode")) 

最後に、あなたは、パラメータとして「パラメータ1」と「PARAM2」の原始的な表現を使用して、アクションメソッドを呼び出すためにその式を使用すると思います。 CSharpCodeProviderを使用

CodeExpression actionInvokeExpression = new CodeMethodInvokeExpression(
     new CodeMethodInvokeExpression(
      new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass"), 
      "Configure", 
      new CodePrimitiveExpression("MyNode")), 
     "Action", 
     new CodePrimitiveExpression("param1"), 
     new CodePrimitiveExpression("param2")); 

、これは生成:

this._myClass.Configure("MyNode").Action("param1", "param2") 
関連する問題