你能说我如何使用 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"))
最后,您将使用该表达式调用 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")