0

你能说我如何使用 CodeDOM (.net) 做如下声明吗?

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

谢谢。

4

1 回答 1

2

假设 _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")
于 2012-07-18T19:22:23.380 回答