Compartilhar via


VBCodeProvider Classe

Definição

Fornece acesso às instâncias do gerador de código e do compilador de código do 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
Herança

Exemplos

O exemplo a seguir usa o provedor de código C# ou Visual Basic para compilar um arquivo de origem. O exemplo verifica a extensão de arquivo de entrada e usa o correspondente CSharpCodeProvider ou VBCodeProvider para compilação. O arquivo de entrada é compilado em um arquivo executável e todos os erros de compilação são exibidos no console.

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

Comentários

Essa classe fornece métodos que podem ser usados para recuperar instâncias do Visual Basic ICodeGenerator e ICodeCompiler implementações.

Observação

Esta classe contém uma demanda de link e uma demanda de herança no nível de classe que se aplica a todos os membros. Um SecurityException é lançado quando o chamador imediato ou a classe derivada não tem permissão de confiança total.

Construtores

VBCodeProvider()

Inicializa uma nova instância da classe VBCodeProvider.

VBCodeProvider(IDictionary<String,String>)

Inicializa uma nova instância da classe VBCodeProvider usando as opções de provedor especificadas.

Propriedades

CanRaiseEvents

Obtém um valor que indica se o componente pode acionar um evento.

(Herdado de Component)
Container

Obtém o IContainer que contém o Component.

(Herdado de Component)
DesignMode

Obtém um valor que indica se o Component está no modo de design no momento.

(Herdado de Component)
Events

Obtém a lista de manipuladores de eventos que estão anexados a este Component.

(Herdado de Component)
FileExtension

Obtém a extensão de nome de arquivo a ser usada ao criar arquivos de código-fonte.

LanguageOptions

Obtém um identificador de recursos de idioma.

Site

Obtém ou define o ISite do Component.

(Herdado de Component)

Métodos

CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Compila um assembly com base nas árvores System.CodeDom contidas na matriz especificada de objetos CodeCompileUnit, usando as configurações de compilador especificadas.

(Herdado de CodeDomProvider)
CompileAssemblyFromFile(CompilerParameters, String[])

Compila um assembly do código-fonte contido nos arquivos especificados, usando as configurações de compilador especificadas.

(Herdado de CodeDomProvider)
CompileAssemblyFromSource(CompilerParameters, String[])

Compila um assembly da matriz especificada de cadeias de caracteres que contém o código-fonte, usando as configurações do compilador especificadas.

(Herdado de CodeDomProvider)
CreateCompiler()
Obsoleto.
Obsoleto.

Obtém uma instância do compilador de código do Visual Basic.

CreateEscapedIdentifier(String)

Cria um identificador de escape para o valor especificado.

(Herdado de CodeDomProvider)
CreateGenerator()
Obsoleto.
Obsoleto.

Obtém uma instância do gerador de código do Visual Basic.

CreateGenerator(String)

Quando substituído em uma classe derivada, cria um novo gerador de código usando o nome do arquivo especificado para saída.

(Herdado de CodeDomProvider)
CreateGenerator(TextWriter)

Quando substituído em uma classe derivada, cria um novo gerador de código usando o TextWriter especificado para saída.

(Herdado de CodeDomProvider)
CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
CreateParser()
Obsoleto.
Obsoleto.

Quando substituído em uma classe derivada, cria um novo analisador de código.

(Herdado de CodeDomProvider)
CreateValidIdentifier(String)

Cria um identificador válido para o valor especificado.

(Herdado de CodeDomProvider)
Dispose()

Libera todos os recursos usados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo Component e opcionalmente libera os recursos gerenciados.

(Herdado de Component)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

Gera código para a unidade de compilação CodeDOM (Modelo de Objeto do Documento de Código) especificada e envia-a para o text writer especificado, usando as opções especificadas.

(Herdado de CodeDomProvider)
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

Gera código para a expressão CodeDOM (Modelo de Objeto do Documento de Código) especificada e o envia para o text writer especificado, usando as opções especificadas.

(Herdado de CodeDomProvider)
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Gera um código para o membro de classe especificado usando as opções do gerador de código e do text writer especificadas.

GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Gera código para a declaração de membro CodeDOM (Modelo de Objeto do Documento de Código) especificada e o envia para o text writer especificado, usando as opções especificadas.

(Herdado de CodeDomProvider)
GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Gera código para o namespace CodeDOM (Modelo de Objeto do Documento de Código) especificado e envia-o para o text writer especificado, usando as opções especificadas.

(Herdado de CodeDomProvider)
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

Gera código para a instrução CodeDOM (Modelo de Objeto do Documento de Código) especificada e envia-o para o text writer especificado, usando as opções especificadas.

(Herdado de CodeDomProvider)
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

Gera código para a declaração de tipo CodeDOM (Modelo de Objeto do Documento de Código) especificada e envia-o para o text writer especificado, usando as opções especificadas.

(Herdado de CodeDomProvider)
GetConverter(Type)

Obtém um TypeConverter para o tipo de objeto especificado.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetService(Type)

Retorna um objeto que representa um serviço fornecido pelo Component ou pelo seu Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetTypeOutput(CodeTypeReference)

Obtém o tipo indicado pelo CodeTypeReference especificado.

(Herdado de CodeDomProvider)
InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
IsValidIdentifier(String)

Retorna um valor que indica se o valor especificado é um identificador válido para a linguagem de programação atual.

(Herdado de CodeDomProvider)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
Parse(TextReader)

Compila o código lido do fluxo de texto especificado em um CodeCompileUnit.

(Herdado de CodeDomProvider)
Supports(GeneratorSupport)

Retorna um valor que indica se o suporte à geração de código especificado é fornecido.

(Herdado de CodeDomProvider)
ToString()

Retorna um String que contém o nome do Component, se houver. Esse método não deve ser substituído.

(Herdado de Component)

Eventos

Disposed

Ocorre quando o componente é disposto por uma chamada ao método Dispose().

(Herdado de Component)

Aplica-se a

Confira também