C # CodeDom - Создать новое поле в CodeMemberMethod - PullRequest
1 голос
/ 12 июля 2011

Чтобы «заполнить» класс CodeDom, я могу создать новый field, который позволит мне генерировать случайные имена для строк, байтов и т. Д. Затем я создал новый метод в своем классе через CodeDom, но у меня много проблем с заполнением этого метода. Я обнаружил, что могу использовать метод CodeSnippetStatement для добавления прямых строк в метод CodeDom, но я не хочу использовать прямые строки. Есть ли другой способ заполнить метод CodeDom?

Вот что я сейчас использую:

CodeMemberMethod method = new CodeMemberMethod();
method.name = "mainMethod";
method.Attributes = MemberAttributes.Public | MemberAttributes.Final;

// Here is where the code is added as a direct string:
method.Statements.Add(new CodeSnippetStatement("string myString = path.getTempPath();"));

myClass.Members.Add(method);
Namespaces.Types.Add(myClass);

Еще раз, я хотел бы знать, есть ли новый метод, который я мог бы использовать для добавления данных в метод CodeDom.

Спасибо, Evan

1 Ответ

2 голосов
/ 12 июля 2011

Вы не можете добавить поле (которое является членом типа) к методу. Однако вы можете добавить локальную переменную, используя CodeVariableDeclarationStatement. Для различных типов операторов, доступных для использования в методах, см. Иерархию наследования CodeStatement по адресу http://msdn.microsoft.com/en-us/library/system.codedom.codestatement#inheritanceContinued.

...