VBCodeProvider не соблюдает OptionInfer в providerOptions?
Я пытаюсь динамически скомпилировать некоторый код 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 ответ
Из-за отсутствия ответов я решил пропустить Reflector, чтобы увидеть, что происходит, и оказалось, что CompilerVersion, по-видимому, является единственным параметром поставщика, на который ссылаются (в методе RedistVersionInfo.GetCompilerPath).
Я смог заставить пример работать, используя вместо этого член CompilerParameters.CompilerOptions.
Если есть способ сделать это, я все уши.