VBCodeProvider Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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) |