【问题标题】:CodeDom sequence of methodsCodeDom 方法序列
【发布时间】:2012-07-19 03:22:23
【问题描述】:

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

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

谢谢。

【问题讨论】:

    标签: .net codedom


    【解决方案1】:

    假设 _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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多