Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / CodeDom вопрос / 7 сообщений из 7, страница 1 из 1
07.09.2004, 15:23
    #32683580
EvgenyV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CodeDom вопрос
Привет всем!
Пытаюсь строить VB код с использованием объектов CodeDom.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CodeCompileUnit unit = new CodeCompileUnit();
CodeNamespace ns = new CodeNamespace("BlaBla");
unit.Namespaces.Add(ns);			
CodeTypeDeclaration myClass = new CodeTypeDeclaration("TestClass");
ns.Types.Add(myClass);
VBCodeProvider codeProvider = new VBCodeProvider();
ICodeGenerator codeGen = codeProvider.CreateGenerator();	
Stream fileStream = File.OpenWrite("c:\\test.vb");
StreamWriter fileWriter = new StreamWriter(fileStream);
CodeGeneratorOptions options = new CodeGeneratorOptions();
options.BracingStyle = "C";
codeGen.GenerateCodeFromCompileUnit(unit, fileWriter, options);
fileWriter.Close();
fileStream.Close();

Как результат получается
Код: plaintext
1.
2.
3.
4.
5.
6.
Option Strict Off
Option Explicit On
Namespace BlaBla    
    Public Class TestClass
    End Class
End Namespace
Может кто-нибудь знает как управлять параметрами
Option Strict Off
Option Explicit On

из объектов CodeDom?
Я бы хотел изменить Strict на ON вместо OFF

Заранее спасибо всем
...
Рейтинг: 0 / 0
08.09.2004, 02:58
    #32684316
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CodeDom вопрос
Код: plaintext
1.
2.
CodeCompileUnit unit=new CodeCompileUnit();
unit.UserData.Add("AllowLateBound", false);              // управление strict (false=On) 
unit.UserData.Add("RequireVariableDeclaration", false); // управление explicit (false=Off)
...
Рейтинг: 0 / 0
08.09.2004, 10:15
    #32684605
EvgenyV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CodeDom вопрос
Не пашет что-то :((.
Не влияет ни один ни другой параметр. Все равно код получается с
Option Strict Off
Option Explicit On
Я могу, конечно вызвать метод GenerateCodeFromNamespace() и вписать в стрим эти две строчки, но это не красиво!

А где документация по этому поводу? В MSDN я не нашел слово, например, "RequireVariableDeclaration".

Спасибо
...
Рейтинг: 0 / 0
08.09.2004, 10:40
    #32684688
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CodeDom вопрос
проверял на форме (а не запись в файл)
this.textBox1 - многострочный TextBox

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CodeCompileUnit unit=new CodeCompileUnit();
unit.UserData.Add("AllowLateBound",false);  // strict 
unit.UserData.Add("RequireVariableDeclaration", true); // expplicit 
			
VBCodeProvider codeProvider = new VBCodeProvider();
ICodeGenerator codeGen = codeProvider.CreateGenerator();
			
CodeNamespace ns = new CodeNamespace("BlaBla");
unit.Namespaces.Add(ns);			
CodeTypeDeclaration myClass = new CodeTypeDeclaration("TestClass");
ns.Types.Add(myClass);
		
StringBuilder sb=new StringBuilder(2048);
StringWriter sw=new StringWriter(sb);

codeGen.GenerateCodeFromCompileUnit(unit, sw, null);
sw.Close();
 // просто вывод текста в окно 
this.textBox1.Text=sb.ToString();

то что получилось в результате
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
'------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'     Runtime Version:  1 . 1 . 4322 . 2032 
'
'     Changes to this file may cause incorrect behavior and will be lost if 
'     the code is regenerated.
' </autogenerated>
' ------------------------------------------------------------------------------ 

Option Strict On
Option Explicit On


Namespace BlaBla
    
    Public Class TestClass
    End Class
End Namespace
...
Рейтинг: 0 / 0
08.09.2004, 10:46
    #32684721
EvgenyV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CodeDom вопрос
Пардон, моя ошибка!!!

Работал со старой версией dll :)

А все-таки где прочитать об этих опциях UserData ?

Спасибо.
...
Рейтинг: 0 / 0
08.09.2004, 11:07
    #32684793
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CodeDom вопрос
есть немного здесь
VS.NET CodeDOM-Based Custom Tool for String Resource Management

недавно вышла книга Kathleen Dollard (5.36 MB)
Code Generation in Microsoft .NET
---
есть коды Rotor/Mono
...
Рейтинг: 0 / 0
08.09.2004, 11:42
    #32684901
EvgenyV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CodeDom вопрос
Спасибо.
Посмотрю на книжные примеры.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / CodeDom вопрос / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]