VBCodeProvider Classe

Definição

Fornece acesso a instâncias do gerador de código Visual Basic e do compilador de código.

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 das implementações Visual Basic ICodeGenerator e ICodeCompiler.

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

Nome Description
VBCodeProvider()

Inicializa uma nova instância da classe VBCodeProvider.

VBCodeProvider(IDictionary<String,String>)

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

Propriedades

Nome Description
CanRaiseEvents

Obtém um valor que indica se o componente pode gerar 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 anexados a isso 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 linguagem.

Site

Obtém ou define o ISite do Component.

(Herdado de Component)

Métodos

Nome Description
CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

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

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

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

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

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

(Herdado de CodeDomProvider)
CreateCompiler()
Obsoleto.

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

CreateEscapedIdentifier(String)

Cria um identificador com escape para o valor especificado.

(Herdado de CodeDomProvider)
CreateGenerator()
Obsoleto.

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

CreateGenerator(String)

Quando substituído em uma classe derivada, cria um novo gerador de código usando o nome de 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 especificado TextWriter 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.

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 (CodeDOM) especificada do CodeDOM e o envia para o gravador de texto especificado, usando as opções especificadas.

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

Gera código para a expressão CodeDOM (CodeDOM) especificada do CodeDOM e o envia para o gravador de texto especificado, usando as opções especificadas.

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

Gera código para o membro de classe especificado usando as opções de gravador de texto e gerador de código especificados.

GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Gera código para o namespace CodeDOM (CodeDOM) especificado e o envia para o gravador de texto especificado, usando as opções especificadas.

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

Gera código para a instrução CodeDOM (CodeDOM) especificada e o envia para o gravador de texto especificado, usando as opções especificadas.

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

Gera código para a declaração de tipo CodeDOM (CodeDOM) especificada e o envia para o gravador de texto 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 hash predefinida.

(Herdado de Object)
GetLifetimeService()

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

(Herdado de MarshalByRefObject)
GetService(Type)

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

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetTypeOutput(CodeTypeReference)

Obtém o tipo indicado pelo especificado CodeTypeReference.

(Herdado de CodeDomProvider)
InitializeLifetimeService()

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

(Herdado de MarshalByRefObject)
IsValidIdentifier(String)

Retorna um valor que indica se o valor especificado é um identificador válido para o idioma atual.

(Herdado de CodeDomProvider)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(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 de 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

Nome Description
Disposed

Ocorre quando o componente é descartado por uma chamada para o Dispose() método.

(Herdado de Component)

Aplica-se a

Confira também