CodeDOM(.net)を使用して、以下のようなステートメントを実行する方法を教えてください。
_myClass.Configure("MyNode").Action("param1", "param2");
ありがとう。
_myClassが作業しているクラスのフィールドであると仮定すると、フィールドへの参照を作成してグラフを作成します。
CodeExpression fieldReferenceExpression = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass")
次に、文字列値「MyNode」のプリミティブ式をパラメーターとして使用して、フィールドでConfigureメソッドを呼び出します。
CodeExpression configureInvokeExpression = new CodeMethodInvokeExpression(
new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass"),
"Configure",
new CodePrimitiveExpression("MyNode"))
最後に、その式を使用して、「param1」と「param2」のプリミティブ式をパラメーターとして使用して、Actionメソッドを呼び出します。
CodeExpression actionInvokeExpression = new CodeMethodInvokeExpression(
new CodeMethodInvokeExpression(
new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass"),
"Configure",
new CodePrimitiveExpression("MyNode")),
"Action",
new CodePrimitiveExpression("param1"),
new CodePrimitiveExpression("param2"));
CSharpCodeProviderを使用すると、以下が生成されます。
this._myClass.Configure("MyNode").Action("param1", "param2")