VBCodeProvider Clase

Definición

Proporciona acceso a las instancias del generador de código Visual Basic y al 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
Herencia

Ejemplos

En el ejemplo siguiente se usa el proveedor de código C# o Visual Basic para compilar un archivo de código fuente. En el ejemplo se comprueba la extensión de archivo de entrada y se usa el correspondiente CSharpCodeProvider o VBCodeProvider para la compilación. El archivo de entrada se compila en un archivo ejecutable y se muestran los errores de compilación en la consola.

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 usar para recuperar instancias de las implementaciones de Visual Basic ICodeGenerator y ICodeCompiler.

Nota:

Esta clase contiene tanto una demanda de vínculo como una demanda de herencia a nivel de clase, las cuales se aplican a todos los miembros. Se produce una SecurityException cuando el autor de la llamada inmediato o la clase derivada no tiene permiso de plena confianza.

Constructores

Nombre Description
VBCodeProvider()

Inicializa una nueva instancia de la clase VBCodeProvider.

VBCodeProvider(IDictionary<String,String>)

Inicializa una nueva instancia de la VBCodeProvider clase mediante las opciones de proveedor especificadas.

Propiedades

Nombre Description
CanRaiseEvents

Obtiene un valor que indica si el componente puede generar un evento.

(Heredado de Component)
Container

Obtiene el IContainer objeto que contiene el Componentobjeto .

(Heredado de Component)
DesignMode

Obtiene un valor que indica si Component el objeto está actualmente en modo de diseño.

(Heredado de Component)
Events

Obtiene la lista de controladores de eventos que están asociados a este Componentobjeto .

(Heredado de Component)
FileExtension

Obtiene la extensión de nombre de archivo que se va a usar al crear archivos de código fuente.

LanguageOptions

Obtiene un identificador de características de lenguaje.

Site

Obtiene o establece ISite de Component.

(Heredado de Component)

Métodos

Nombre Description
CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Compila un ensamblado basado en los System.CodeDom árboles contenidos en la matriz de CodeCompileUnit objetos especificada mediante la configuración del compilador especificada.

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

Compila un ensamblado a partir del código fuente contenido en los archivos especificados mediante la configuración del compilador especificada.

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

Compila un ensamblado de la matriz especificada de cadenas que contienen código fuente mediante la configuración del compilador especificada.

(Heredado de CodeDomProvider)
CreateCompiler()
Obsoletos.

Obtiene una instancia del compilador de código de Visual Basic.

CreateEscapedIdentifier(String)

Crea un identificador de escape para el valor especificado.

(Heredado de CodeDomProvider)
CreateGenerator()
Obsoletos.

Obtiene una instancia del generador de código Visual Basic.

CreateGenerator(String)

Cuando se reemplaza en una clase derivada, crea un nuevo generador de código con el nombre de archivo especificado para la salida.

(Heredado de CodeDomProvider)
CreateGenerator(TextWriter)

Cuando se reemplaza en una clase derivada, crea un nuevo generador de código mediante el especificado TextWriter para la salida.

(Heredado de CodeDomProvider)
CreateObjRef(Type)

Crea un objeto que contiene toda la información pertinente necesaria para generar un proxy usado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
CreateParser()
Obsoletos.

Cuando se invalida en una clase derivada, crea un nuevo analizador de código.

(Heredado de CodeDomProvider)
CreateValidIdentifier(String)

Crea un identificador válido para el valor especificado.

(Heredado de CodeDomProvider)
Dispose()

Libera todos los recursos usados por .Component

(Heredado de Component)
Dispose(Boolean)

Libera los recursos no administrados utilizados por Component y, opcionalmente, libera los recursos administrados.

(Heredado de Component)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

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

Genera código para la unidad de compilación Code Document Object Model (CodeDOM) especificada y la envía al escritor de texto especificado mediante las opciones especificadas.

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

Genera código para la expresión Code Document Object Model (CodeDOM) especificada y la envía al escritor de texto especificado mediante las opciones especificadas.

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

Genera código para el miembro de clase especificado mediante las opciones especificadas de generador de código y escritor de texto.

GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Genera código para el espacio de nombres Code Document Object Model (CodeDOM) especificado y lo envía al escritor de texto especificado mediante las opciones especificadas.

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

Genera código para la instrucción Code Document Object Model (CodeDOM) especificada y la envía al escritor de texto especificado mediante las opciones especificadas.

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

Genera código para la declaración de tipo Code Document Object Model (CodeDOM) especificada y la envía al escritor de texto especificado mediante las opciones especificadas.

(Heredado de CodeDomProvider)
GetConverter(Type)

Obtiene un TypeConverter para el tipo de objeto especificado.

GetHashCode()

Actúa como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetService(Type)

Devuelve un objeto que representa un servicio proporcionado por Component o por su Container.

(Heredado de Component)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetTypeOutput(CodeTypeReference)

Obtiene el tipo indicado por el especificado CodeTypeReference.

(Heredado de CodeDomProvider)
InitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
IsValidIdentifier(String)

Devuelve un valor que indica si el valor especificado es un identificador válido para el idioma actual.

(Heredado de CodeDomProvider)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto actual MarshalByRefObject .

(Heredado de MarshalByRefObject)
Parse(TextReader)

Compila el código leído de la secuencia de texto especificada en un CodeCompileUnit.

(Heredado de CodeDomProvider)
Supports(GeneratorSupport)

Devuelve un valor que indica si se proporciona compatibilidad con la generación de código especificada.

(Heredado de CodeDomProvider)
ToString()

Devuelve un String objeto que contiene el nombre de Component, si existe. Este método no se debe invalidar.

(Heredado de Component)

Eventos

Nombre Description
Disposed

Se produce cuando el componente se elimina mediante una llamada al Dispose() método .

(Heredado de Component)

Se aplica a

Consulte también