VBCodeProvider не соблюдает OptionInfer в providerOptions? - PullRequest
1 голос
/ 24 июня 2009

Я пытаюсь динамически скомпилировать некоторый код VB в моем проекте на C #, и у меня возникла проблема с VBCodeProvider. Кажется, он не соблюдает флаг OptionInfer, который я помещаю в словарь providerOptions.

Мой код выглядит так:

var providerOptions = new Dictionary<string, string>();
providerOptions.Add("CompilerVersion", "v3.5");
providerOptions.Add("OptionInfer", "True");
var provider = new VBCodeProvider(providerOptions);

Я установил для моего CompilerParameters.TreatWarningsAsErrors значение True, и я получил следующую ошибку:

Объявление переменной без 'As' оговорка; Предполагаемый тип объекта.

Однако все хорошо, когда я помещаю текст «Option Infer On» вверху моего динамического исходного кода.

Может кто-нибудь пролить свет? Я использую неправильный ключ providerOptions или значение? Где-нибудь еще есть другие настройки?

1 Ответ

1 голос
/ 25 июня 2009

Из-за отсутствия ответов я решил пропустить Reflector, чтобы увидеть, что происходит, и оказалось, что CompilerVersion, по-видимому, является единственным параметром поставщика, на который есть ссылка (в методе RedistVersionInfo.GetCompilerPath).

Мне удалось заставить пример работать, используя вместо этого член CompilerParameters.CompilerOptions.

Если есть ЕСТЬ способ сделать это, я весь слух.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...