2012-05-09 1 views
0

CodeDOM (.net)을 사용하여 아래 코드를 어떻게 수행 할 수 있습니까?CodeDom 메서드 시퀀스

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

감사합니다.

답변

2

_myClass가 작업중인 클래스의 필드라고 가정하면 필드를 참조하여 그래프를 작성합니다.

CodeExpression fieldReferenceExpression = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass") 

그런 다음 당신은 매개 변수로 문자열 값 "MYNODE"의 원시적 표정으로 필드 구성 방법을 호출 할 것입니다.

CodeExpression configureInvokeExpression = new CodeMethodInvokeExpression(
      new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass"), 
      "Configure", 
      new CodePrimitiveExpression("MyNode")) 

마지막으로, 당신은 "PARAM1"를 매개 변수로 "PARAM2"의 원시적 인 표현을 사용하여 액션 메소드를 호출하기 위해 그 표현을 사용하십시오. 에서는 CSharpCodeProvider 사용

CodeExpression actionInvokeExpression = new CodeMethodInvokeExpression(
     new CodeMethodInvokeExpression(
      new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass"), 
      "Configure", 
      new CodePrimitiveExpression("MyNode")), 
     "Action", 
     new CodePrimitiveExpression("param1"), 
     new CodePrimitiveExpression("param2")); 

,이 생성

this._myClass.Configure("MyNode").Action("param1", "param2") 
관련 문제