Не могли бы вы сказать, как я могу сделать оператор, как показано ниже, используя CodeDOM (.net)?
_myClass.Configure("MyNode").Action("param1", "param2");
Спасибо.
Не могли бы вы сказать, как я могу сделать оператор, как показано ниже, используя CodeDOM (.net)?
_myClass.Configure("MyNode").Action("param1", "param2");
Спасибо.
Предполагая, что _myClass является полем в классе, с которым вы работаете, вы должны построить график, сделав ссылку на поле.
CodeExpression fieldReferenceExpression = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass")
Затем вы вызовете метод Configure для поля с примитивным выражением строкового значения «MyNode» в качестве параметра.
CodeExpression configureInvokeExpression = new CodeMethodInvokeExpression(
new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass"),
"Configure",
new CodePrimitiveExpression("MyNode"))
Наконец, вы можете использовать это выражение для вызова метода Action, используя примитивные выражения «param1» и «param2» в качестве параметров.
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")