有没有人知道用CodeDom调用基类的泛型方法的方法?
调用标准方法没问题,但我找不到调用泛型的解决方案.
我用来调用标准基类方法GetInstance的代码:
CodeAssignStatement assignStatement = new CodeAssignStatement( new CodeVariableReferenceExpression("instance"), new CodeMethodInvokeExpression( new CodeThisReferenceExpression(), "GetInstance", new CodeExpression[] { new CodeVariableReferenceExpression("instance") } ));
Raymond Roes.. 12
你可以找到你的答案在这里在MSDN:
向下滚动到C#示例(CodeDomGenericsDemo).
生成通用方法:
public virtual void Print() where S : new() { Console.WriteLine(default(T)); Console.WriteLine(default(S)); }
然后在示例中执行:
dict.Print();
生成对方法的调用的代码:
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])));
(您将使用CodeThisReferenceExpression()或CodeBaseReferenceExpression()而不是CodeVariableReferenceExpression),不确定这是否是您通过调用标准基类方法的意思.
你可以找到你的答案在这里在MSDN:
向下滚动到C#示例(CodeDomGenericsDemo).
生成通用方法:
public virtual void Print() where S : new() { Console.WriteLine(default(T)); Console.WriteLine(default(S)); }
然后在示例中执行:
dict.Print();
生成对方法的调用的代码:
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])));
(您将使用CodeThisReferenceExpression()或CodeBaseReferenceExpression()而不是CodeVariableReferenceExpression),不确定这是否是您通过调用标准基类方法的意思.