【发布时间】:2016-11-28 11:46:11
【问题描述】:
public void CreateMethod()
{
CodeMemberMethod mymethod = new CodeMemberMethod();
mymethod.Name = testMethod;
CodeTypeReference ctr = new CodeTypeReference();
//Assign the return type to the method.
mymethod.ReturnType = ctr;
CodeSnippetExpression snippet1 = new CodeSnippetExpression("AutomationBase obj = new AutomationBase()");
CodeSnippetExpression snippet2 = new CodeSnippetExpression("obj.Execute(testCases[1])");
CodeExpressionStatement stmt1 = new CodeExpressionStatement(snippet1);
CodeExpressionStatement stmt2 = new CodeExpressionStatement(snippet2);
mymethod.Statements.Add(stmt1);
mymethod.Statements.Add(stmt2);
mymethod.Attributes = MemberAttributes.Public;
myclass.Members.Add(mymethod);
}
输出
public virtual void TestCaseId002() {
AutomationBase obj = new AutomationBase();
obj.Execute(testCases[1]);
}
得到虚空
我只需要 void。
【问题讨论】:
-
virtual与返回类型无关。 -
由于
ctr.;,您提供的代码甚至无法编译。请提供minimal reproducible example(也不清楚这与 ASP.NET 有什么关系……) -
但默认情况下 c# 方法是非虚拟的。
-
@jon 它只是一个编辑更改
-
但 CodeDom(尝试)与语言无关。仅仅因为 C# 有一定的规则,并不代表 CodeDom 有。
标签: c# asp.net .net code-generation codedom