VBCodeProvider Класс

Определение

Предоставляет доступ к экземплярам генератора кода Visual Basic и компилятора кода.

public ref class VBCodeProvider : System::CodeDom::Compiler::CodeDomProvider
public class VBCodeProvider : System.CodeDom.Compiler.CodeDomProvider
type VBCodeProvider = class
    inherit CodeDomProvider
Public Class VBCodeProvider
Inherits CodeDomProvider
Наследование

Примеры

В следующем примере используется поставщик кода C# или Visual Basic для компиляции исходного файла. В примере проверяется расширение входного файла и используется соответствующий CSharpCodeProvider или VBCodeProvider для компиляции. Входной файл компилируется в исполняемый файл, и все ошибки компиляции отображаются в консоли.

public static bool CompileExecutable(String sourceName)
{
    FileInfo sourceFile = new FileInfo(sourceName);
    CodeDomProvider provider = null;
    bool compileOk = false;

    // Select the code provider based on the input file extension.
    if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) == ".CS")
    {
        provider = CodeDomProvider.CreateProvider("CSharp");
    }
    else if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) == ".VB")
    {
        provider = CodeDomProvider.CreateProvider("VisualBasic");
    }
    else
    {
        Console.WriteLine("Source file must have a .cs or .vb extension");
    }

    if (provider != null)
    {

        // Format the executable file name.
        // Build the output assembly path using the current directory
        // and <source>_cs.exe or <source>_vb.exe.

        String exeName = String.Format(@"{0}\{1}.exe",
            System.Environment.CurrentDirectory,
            sourceFile.Name.Replace(".", "_"));

        CompilerParameters cp = new CompilerParameters();

        // Generate an executable instead of
        // a class library.
        cp.GenerateExecutable = true;

        // Specify the assembly file name to generate.
        cp.OutputAssembly = exeName;

        // Save the assembly as a physical file.
        cp.GenerateInMemory = false;

        // Set whether to treat all warnings as errors.
        cp.TreatWarningsAsErrors = false;

        // Invoke compilation of the source file.
        CompilerResults cr = provider.CompileAssemblyFromFile(cp,
            sourceName);

        if(cr.Errors.Count > 0)
        {
            // Display compilation errors.
            Console.WriteLine("Errors building {0} into {1}",
                sourceName, cr.PathToAssembly);
            foreach(CompilerError ce in cr.Errors)
            {
                Console.WriteLine("  {0}", ce.ToString());
                Console.WriteLine();
            }
        }
        else
        {
            // Display a successful compilation message.
            Console.WriteLine("Source {0} built into {1} successfully.",
                sourceName, cr.PathToAssembly);
        }

        // Return the results of the compilation.
        if (cr.Errors.Count > 0)
        {
            compileOk = false;
        }
        else
        {
            compileOk = true;
        }
    }
    return compileOk;
}
       Public Shared Function CompileExecutable(sourceName As String) As Boolean
           Dim sourceFile As FileInfo = New FileInfo(sourceName)
           Dim provider As CodeDomProvider = Nothing
           Dim compileOk As Boolean = False

           ' Select the code provider based on the input file extension.
           If sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) = ".CS"

               provider = CodeDomProvider.CreateProvider("CSharp")

           ElseIf sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) = ".VB"

               provider = CodeDomProvider.CreateProvider("VisualBasic")

           Else
               Console.WriteLine("Source file must have a .cs or .vb extension")
           End If

           If Not provider Is Nothing

               ' Format the executable file name.
               ' Build the output assembly path using the current directory
               ' and <source>_cs.exe or <source>_vb.exe.

               Dim exeName As String = String.Format("{0}\{1}.exe", _
                   System.Environment.CurrentDirectory, _
                   sourceFile.Name.Replace(".", "_"))

               Dim cp As CompilerParameters = new CompilerParameters()

               ' Generate an executable instead of 
               ' a class library.
               cp.GenerateExecutable = True

               ' Specify the assembly file name to generate.
               cp.OutputAssembly = exeName
   
               ' Save the assembly as a physical file.
               cp.GenerateInMemory = False
   
               ' Set whether to treat all warnings as errors.
               cp.TreatWarningsAsErrors = False

               ' Invoke compilation of the source file.
               Dim cr As CompilerResults = provider.CompileAssemblyFromFile(cp, _
                   sourceName)
   
               If cr.Errors.Count > 0
                   ' Display compilation errors.
                   Console.WriteLine("Errors building {0} into {1}", _
                       sourceName, cr.PathToAssembly)

                   Dim ce As CompilerError
                   For Each ce In cr.Errors
                       Console.WriteLine("  {0}", ce.ToString())
                       Console.WriteLine()
                   Next ce
               Else
                   ' Display a successful compilation message.
                   Console.WriteLine("Source {0} built into {1} successfully.", _
                       sourceName, cr.PathToAssembly)
               End If
             
               ' Return the results of the compilation.
               If cr.Errors.Count > 0
                   compileOk = False
               Else 
                   compileOk = True
               End If
           End If
           return compileOk

       End Function

Комментарии

Этот класс предоставляет методы, которые можно использовать для получения экземпляров реализаций Visual Basic ICodeGenerator и ICodeCompiler.

Note

Этот класс содержит запрос ссылки и запрос наследования на уровне класса, которые применяются ко всем членам. SecurityException возникает, когда ни непосредственный вызывающий объект, ни производный класс не имеют разрешения на полное доверие.

Конструкторы

Имя Описание
VBCodeProvider()

Инициализирует новый экземпляр класса VBCodeProvider.

VBCodeProvider(IDictionary<String,String>)

Инициализирует новый экземпляр VBCodeProvider класса с помощью указанных параметров поставщика.

Свойства

Имя Описание
CanRaiseEvents

Возвращает значение, указывающее, может ли компонент вызвать событие.

(Унаследовано от Component)
Container

Возвращает объект IContainer , содержащий Componentобъект .

(Унаследовано от Component)
DesignMode

Возвращает значение, указывающее, находится ли текущий Component режим разработки.

(Унаследовано от Component)
Events

Возвращает список обработчиков событий, подключенных к этому Component.

(Унаследовано от Component)
FileExtension

Возвращает расширение имени файла, используемое при создании файлов исходного кода.

LanguageOptions

Возвращает идентификатор функций языка.

Site

Возвращает или задает ISite объект Component.

(Унаследовано от Component)

Методы

Имя Описание
CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Компилирует сборку на System.CodeDom основе деревьев, содержащихся в указанном массиве объектов, с помощью указанных CodeCompileUnit параметров компилятора.

(Унаследовано от CodeDomProvider)
CompileAssemblyFromFile(CompilerParameters, String[])

Компилирует сборку из исходного кода, содержащегося в указанных файлах, с помощью указанных параметров компилятора.

(Унаследовано от CodeDomProvider)
CompileAssemblyFromSource(CompilerParameters, String[])

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

(Унаследовано от CodeDomProvider)
CreateCompiler()
Устаревшие..
Устаревшие..

Возвращает экземпляр компилятора кода Visual Basic.

CreateEscapedIdentifier(String)

Создает escape-идентификатор для указанного значения.

(Унаследовано от CodeDomProvider)
CreateGenerator()
Устаревшие..
Устаревшие..

Возвращает экземпляр генератора кода Visual Basic.

CreateGenerator(String)

При переопределении в производном классе создает новый генератор кода, используя указанное имя файла для выходных данных.

(Унаследовано от CodeDomProvider)
CreateGenerator(TextWriter)

При переопределении в производном классе создает новый генератор кода, используя указанный TextWriter для выходных данных.

(Унаследовано от CodeDomProvider)
CreateObjRef(Type)

Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
CreateParser()
Устаревшие..
Устаревшие..

При переопределении в производном классе создает новый средство синтаксического анализа кода.

(Унаследовано от CodeDomProvider)
CreateValidIdentifier(String)

Создает допустимый идентификатор для указанного значения.

(Унаследовано от CodeDomProvider)
Dispose()

Освобождает все ресурсы, используемые параметром Component.

(Унаследовано от Component)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые Component и при необходимости освобождает управляемые ресурсы.

(Унаследовано от Component)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

Создает код для указанной единицы компиляции объектной модели документа кода (CodeDOM) и отправляет его в указанный модуль записи текста с помощью указанных параметров.

(Унаследовано от CodeDomProvider)
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

Создает код для указанного выражения объектной модели документа кода (CodeDOM) и отправляет его в указанный модуль записи текста с помощью указанных параметров.

(Унаследовано от CodeDomProvider)
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Создает код для указанного члена класса с помощью указанных параметров записи текста и генератора кода.

GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Создает код для указанного пространства имен объектной модели документа кода (CodeDOM) и отправляет его в указанный модуль записи текста с помощью указанных параметров.

(Унаследовано от CodeDomProvider)
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

Создает код для указанной инструкции Code Document Object Model (CodeDOM) и отправляет его в указанный модуль записи текста с помощью указанных параметров.

(Унаследовано от CodeDomProvider)
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

Создает код для указанного объявления типа объектной модели документа кода (CodeDOM) и отправляет его в указанный модуль записи текста с помощью указанных параметров.

(Унаследовано от CodeDomProvider)
GetConverter(Type)

TypeConverter Возвращает значение для указанного типа объекта.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
GetService(Type)

Возвращает объект, представляющий службу, предоставляемую Component или ее Container.

(Унаследовано от Component)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
GetTypeOutput(CodeTypeReference)

Возвращает тип, указанный указанным CodeTypeReference.

(Унаследовано от CodeDomProvider)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
IsValidIdentifier(String)

Возвращает значение, указывающее, является ли указанное значение допустимым идентификатором текущего языка.

(Унаследовано от CodeDomProvider)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неглубокую копию текущего MarshalByRefObject объекта.

(Унаследовано от MarshalByRefObject)
Parse(TextReader)

Компилирует код, считывающийся из указанного текстового потока, в объект CodeCompileUnit.

(Унаследовано от CodeDomProvider)
Supports(GeneratorSupport)

Возвращает значение, указывающее, предоставляется ли указанная поддержка создания кода.

(Унаследовано от CodeDomProvider)
ToString()

String Возвращает имя, содержащее имя , если таковое Componentимеется. Этот метод не должен быть переопределен.

(Унаследовано от Component)

События

Имя Описание
Disposed

Происходит при удалении компонента вызовом Dispose() метода.

(Унаследовано от Component)

Применяется к

См. также раздел