문제

누구든지 Codedom과 함께 기본 클래스의 일반적인 방법을 호출하는 방법을 아는 사람이 있습니까?

표준 방법을 호출하는 데 아무런 문제가 없지만 제네릭을 호출 할 솔루션을 찾을 수 없습니다.

표준 기본 클래스 메소드 GetInstance를 호출하는 데 사용하는 코드 :

CodeAssignStatement assignStatement = new CodeAssignStatement(
     new CodeVariableReferenceExpression("instance"),
     new CodeMethodInvokeExpression(
         new CodeThisReferenceExpression(),
         "GetInstance",
         new CodeExpression[] { new CodeVariableReferenceExpression("instance") }
     ));
도움이 되었습니까?

해결책

답을 찾을 수 있습니다 여기 MSDN에서 :

C# 예제 (CodedomGenericsDemo)로 스크롤하십시오.

일반적인 방법이 생성됩니다.

 public virtual void Print<S, T>()
            where S : new()
        {
            Console.WriteLine(default(T));
            Console.WriteLine(default(S));
        }

그리고 나중에 예에서 실행되었습니다.

dict.Print<decimal, int>();

메소드에 대한 호출을 생성하기위한 코드 :

 methodMain.Statements.Add(new CodeExpressionStatement(
                 new CodeMethodInvokeExpression(
                      new CodeMethodReferenceExpression(
                         new CodeVariableReferenceExpression("dict"),
                             "Print",
                                 new CodeTypeReference[] {
                                    new CodeTypeReference("System.Decimal"),
                                       new CodeTypeReference("System.Int32"),}),
                                           new CodeExpression[0])));

(CodeVariAblereferenceExpression 대신 CodeThisReferenceExpression () 또는 CodeBasereErferenceExpression ()을 사용하므로 표준 기본 클래스 방법을 호출함으로써 의미하는지 확실하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top