VBCodeProvider VBCodeProvider VBCodeProvider VBCodeProvider Class

Definición

Proporciona acceso a instancias del generador de código y del compilador de código de Visual Basic.Provides access to instances of the Visual Basic code generator and code compiler.

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
Herencia

Ejemplos

En el ejemplo siguiente se utiliza C# o Visual Basic proveedor de código para compilar un archivo de código fuente.The following example uses either the C# or Visual Basic code provider to compile a source file. En el ejemplo se comprueba la extensión de archivo de entrada CSharpCodeProvider y VBCodeProvider se utiliza la correspondiente o para la compilación.The example checks the input file extension and uses the corresponding CSharpCodeProvider or VBCodeProvider for compilation. El archivo de entrada se compila en un archivo ejecutable y se muestran los errores de compilación en la consola.The input file is compiled into an executable file, and any compilation errors are displayed to the 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

Comentarios

Esta clase proporciona métodos que se pueden utilizar para recuperar instancias de las implementaciones ICodeCompiler de Visual Basic ICodeGenerator e.This class provides methods that can be used to retrieve instances of the Visual Basic ICodeGenerator and ICodeCompiler implementations.

Nota

Esta clase contiene una petición de vínculo y una petición de herencia en el nivel de clase que se aplica a todos los miembros.This class contains a link demand and an inheritance demand at the class level that applies to all members. Se SecurityException produce una excepción cuando el llamador inmediato o la clase derivada no tienen permiso de plena confianza.A SecurityException is thrown when either the immediate caller or the derived class does not have full-trust permission.

Constructores

VBCodeProvider() VBCodeProvider() VBCodeProvider() VBCodeProvider()

Inicializa una nueva instancia de la clase VBCodeProvider.Initializes a new instance of the VBCodeProvider class.

VBCodeProvider(IDictionary<String,String>) VBCodeProvider(IDictionary<String,String>) VBCodeProvider(IDictionary<String,String>) VBCodeProvider(IDictionary<String,String>)

Inicializa una nueva instancia de la clase VBCodeProvider usando las opciones del proveedor especificado.Initializes a new instance of the VBCodeProvider class by using the specified provider options.

Propiedades

CanRaiseEvents CanRaiseEvents CanRaiseEvents CanRaiseEvents

Obtiene un valor que indica si el componente puede generar un evento.Gets a value indicating whether the component can raise an event.

(Inherited from Component)
Container Container Container Container

Obtiene IContainer que contiene Component.Gets the IContainer that contains the Component.

(Inherited from Component)
DesignMode DesignMode DesignMode DesignMode

Obtiene un valor que indica si Component está actualmente en modo de diseño.Gets a value that indicates whether the Component is currently in design mode.

(Inherited from Component)
Events Events Events Events

Obtiene la lista de controladores de eventos asociados a Component.Gets the list of event handlers that are attached to this Component.

(Inherited from Component)
FileExtension FileExtension FileExtension FileExtension

Obtiene la extensión de nombre de archivo que se utilizará al crear archivos de código fuente.Gets the file name extension to use when creating source code files.

LanguageOptions LanguageOptions LanguageOptions LanguageOptions

Obtiene un identificador de características de lenguaje.Gets a language features identifier.

Site Site Site Site

Obtiene o establece el ISite de Component.Gets or sets the ISite of the Component.

(Inherited from Component)

Métodos

CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[]) CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[]) CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[]) CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Compila un ensamblado basado en los árboles System.CodeDom que contiene la matriz especificada de objetos CodeCompileUnit, utilizando la configuración del compilador especificada.Compiles an assembly based on the System.CodeDom trees contained in the specified array of CodeCompileUnit objects, using the specified compiler settings.

(Inherited from CodeDomProvider)
CompileAssemblyFromFile(CompilerParameters, String[]) CompileAssemblyFromFile(CompilerParameters, String[]) CompileAssemblyFromFile(CompilerParameters, String[]) CompileAssemblyFromFile(CompilerParameters, String[])

Compila un ensamblado a partir del código fuente que contienen los archivos especificados, utilizando la configuración de compilador especificada.Compiles an assembly from the source code contained in the specified files, using the specified compiler settings.

(Inherited from CodeDomProvider)
CompileAssemblyFromSource(CompilerParameters, String[]) CompileAssemblyFromSource(CompilerParameters, String[]) CompileAssemblyFromSource(CompilerParameters, String[]) CompileAssemblyFromSource(CompilerParameters, String[])

Compila un ensamblado basado en la matriz especificada de cadenas que contiene el código fuente, utilizando la configuración del compilador especificada.Compiles an assembly from the specified array of strings containing source code, using the specified compiler settings.

(Inherited from CodeDomProvider)
CreateCompiler() CreateCompiler() CreateCompiler() CreateCompiler()

Obtiene una instancia del compilador de código de Visual Basic.Gets an instance of the Visual Basic code compiler.

CreateEscapedIdentifier(String) CreateEscapedIdentifier(String) CreateEscapedIdentifier(String) CreateEscapedIdentifier(String)

Crea un identificador de escape para el valor especificado.Creates an escaped identifier for the specified value.

(Inherited from CodeDomProvider)
CreateGenerator() CreateGenerator() CreateGenerator() CreateGenerator()

Obtiene una instancia del generador de código de Visual Basic.Gets an instance of the Visual Basic code generator.

CreateGenerator(String) CreateGenerator(String) CreateGenerator(String) CreateGenerator(String)

Cuando se reemplaza en una clase derivada, crea un nuevo generador de código utilizando el nombre de archivo especificado para los resultados.When overridden in a derived class, creates a new code generator using the specified file name for output.

(Inherited from CodeDomProvider)
CreateGenerator(TextWriter) CreateGenerator(TextWriter) CreateGenerator(TextWriter) CreateGenerator(TextWriter)

Cuando se reemplaza en una clase derivada, crea un nuevo generador de código utilizando el TextWriter especificado para los resultados.When overridden in a derived class, creates a new code generator using the specified TextWriter for output.

(Inherited from CodeDomProvider)
CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
CreateParser() CreateParser() CreateParser() CreateParser()

Cuando se reemplaza en una clase derivada, crea un nuevo analizador de código.When overridden in a derived class, creates a new code parser.

(Inherited from CodeDomProvider)
CreateValidIdentifier(String) CreateValidIdentifier(String) CreateValidIdentifier(String) CreateValidIdentifier(String)

Crea un identificador válido para el valor especificado.Creates a valid identifier for the specified value.

(Inherited from CodeDomProvider)
Dispose() Dispose() Dispose() Dispose()

Libera todos los recursos que usa Component.Releases all resources used by the Component.

(Inherited from Component)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Libera los recursos no administrados que usa Component y, de forma opcional, libera los recursos administrados.Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(Inherited from Component)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions) GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions) GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions) GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

Genera código para la unidad de compilación CodeDOM (Code Document Object Model) especificada y lo envía al escritor de texto especificado utilizando las opciones igualmente especificadas.Generates code for the specified Code Document Object Model (CodeDOM) compilation unit and sends it to the specified text writer, using the specified options.

(Inherited from CodeDomProvider)
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions) GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions) GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions) GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

Genera código para la expresión CodeDOM (Code Document Object Model) especificada y lo envía al escritor de texto especificado utilizando las opciones igualmente especificadas.Generates code for the specified Code Document Object Model (CodeDOM) expression and sends it to the specified text writer, using the specified options.

(Inherited from CodeDomProvider)
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions) GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions) GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions) GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Genera código para el miembro de clase especificado usando las opciones del generador de código y el programa de escritura de texto especificados.Generates code for the specified class member using the specified text writer and code generator options.

GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions) GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions) GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions) GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Genera código para el espacio de nombres CodeDOM (Code Document Object Model) especificado y lo envía al escritor de texto especificado utilizando las opciones igualmente especificadas.Generates code for the specified Code Document Object Model (CodeDOM) namespace and sends it to the specified text writer, using the specified options.

(Inherited from CodeDomProvider)
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions) GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions) GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions) GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

Genera código para la instrucción CodeDOM (Code Document Object Model) especificada y lo envía al escritor de texto especificado utilizando las opciones igualmente especificadas.Generates code for the specified Code Document Object Model (CodeDOM) statement and sends it to the specified text writer, using the specified options.

(Inherited from CodeDomProvider)
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions) GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions) GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions) GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

Genera código para la declaración de tipos CodeDOM (Code Document Object Model) especificada y lo envía al escritor de texto especificado utilizando las opciones igualmente especificadas.Generates code for the specified Code Document Object Model (CodeDOM) type declaration and sends it to the specified text writer, using the specified options.

(Inherited from CodeDomProvider)
GetConverter(Type) GetConverter(Type) GetConverter(Type) GetConverter(Type)

Obtiene un TypeConverter para el tipo de objeto especificado.Gets a TypeConverter for the specified type of object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetService(Type) GetService(Type) GetService(Type) GetService(Type)

Devuelve un objeto que representa el servicio suministrado por Component o por Container.Returns an object that represents a service provided by the Component or by its Container.

(Inherited from Component)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
GetTypeOutput(CodeTypeReference) GetTypeOutput(CodeTypeReference) GetTypeOutput(CodeTypeReference) GetTypeOutput(CodeTypeReference)

Obtiene el tipo indicado por el CodeTypeReference especificado.Gets the type indicated by the specified CodeTypeReference.

(Inherited from CodeDomProvider)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
IsValidIdentifier(String) IsValidIdentifier(String) IsValidIdentifier(String) IsValidIdentifier(String)

Devuelve un valor que indica si el valor especificado es un identificador válido para el lenguaje actual.Returns a value that indicates whether the specified value is a valid identifier for the current language.

(Inherited from CodeDomProvider)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
Parse(TextReader) Parse(TextReader) Parse(TextReader) Parse(TextReader)

Compila en CodeCompileUnit el código leído de la secuencia de texto especificada.Compiles the code read from the specified text stream into a CodeCompileUnit.

(Inherited from CodeDomProvider)
Supports(GeneratorSupport) Supports(GeneratorSupport) Supports(GeneratorSupport) Supports(GeneratorSupport)

Devuelve un valor que indica si se proporciona la compatibilidad especificada para la generación de código.Returns a value indicating whether the specified code generation support is provided.

(Inherited from CodeDomProvider)
ToString() ToString() ToString() ToString()

Devuelve una String que contiene el nombre del Component, si existe.Returns a String containing the name of the Component, if any. Este método no se debe invalidar.This method should not be overridden.

(Inherited from Component)

Eventos

Disposed Disposed Disposed Disposed

Se produce cuando el componente se elimina mediante una llamada al método Dispose().Occurs when the component is disposed by a call to the Dispose() method.

(Inherited from Component)

Seguridad

LinkDemand
para plena confianza para el llamador inmediato.for full trust for the immediate caller. Un código de confianza parcial no puede utilizar esta clase.This class cannot be used by partially trusted code.

InheritanceDemand
para plena confianza para los desarrolladores de herederos.for full trust for inheritors. Un código de confianza parcial no puede heredar esta clase.This class cannot be inherited by partially trusted code.

Se aplica a

Consulte también: