2016-07-25 2 views
2
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); 
} 

выходCodeDom Как создать метод с типом возврата void?

public virtual void TestCaseId002() { 
      AutomationBase obj = new AutomationBase(); 
      obj.Execute(testCases[1]); 
     } 

получение виртуальной пустоты

мне нужна только пустота.

+1

'virtual' не имеет ничего общего с типами возвращения. –

+1

Код, который вы предоставили, даже не компилируется из-за 'ctr.;'. Пожалуйста, предоставьте [mcve] (неясно, что это связано с ASP.NET, либо ...) –

+0

, но по умолчанию методы C# не являются виртуальными. – Lijo

ответ

5

Вам необходимо пометить метод как Final, чтобы показать, что это не наследуемое:

mymethod.Attributes = MemberAttributes.Public | MemberAttributes.Final; 
+1

Это работает спасибо – Lijo

+0

У меня есть еще одно сомнение в том, как мы можем указать место, где нам нужен код, который будет сгенерирован? – Lijo