CodeDomProvider.GetCompilerInfo(String) Método
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í.
Devuelve la configuración del proveedor y compilador del lenguaje especificado.
public:
static System::CodeDom::Compiler::CompilerInfo ^ GetCompilerInfo(System::String ^ language);
public static System.CodeDom.Compiler.CompilerInfo GetCompilerInfo (string language);
[System.Runtime.InteropServices.ComVisible(false)]
public static System.CodeDom.Compiler.CompilerInfo GetCompilerInfo (string language);
static member GetCompilerInfo : string -> System.CodeDom.Compiler.CompilerInfo
[<System.Runtime.InteropServices.ComVisible(false)>]
static member GetCompilerInfo : string -> System.CodeDom.Compiler.CompilerInfo
Public Shared Function GetCompilerInfo (language As String) As CompilerInfo
Parámetros
- language
- String
Nombre de lenguaje.
Devoluciones
Objeto CompilerInfo que contiene los valores de configuración de la implementación de CodeDomProvider configurada.
- Atributos
Excepciones
language
no tiene un proveedor configurado en este equipo.
El valor de language
es null
.
El llamador no dispone del permiso requerido.
Ejemplos
En el ejemplo de código siguiente se determina la CodeDomProvider implementación de un idioma de entrada y se muestran los valores configurados para el proveedor de idioma. Este ejemplo de código es parte de un ejemplo más grande proporcionado para la clase CompilerInfo.
CodeDomProvider^ provider = nullptr;
// Check for a provider corresponding to the input language.
if ( CodeDomProvider::IsDefinedLanguage( language ) )
{
provider = CodeDomProvider::CreateProvider( language );
if ( provider )
{
// Display information about this language provider.
Console::WriteLine( "Language provider: {0}", provider->ToString() );
Console::WriteLine();
Console::WriteLine( " Default file extension: {0}", provider->FileExtension );
Console::WriteLine();
// Get the compiler settings for this language.
CompilerInfo^ langCompilerInfo = CodeDomProvider::GetCompilerInfo( language );
if ( langCompilerInfo )
{
CompilerParameters^ langCompilerConfig = langCompilerInfo->CreateDefaultCompilerParameters();
if ( langCompilerConfig )
{
Console::WriteLine( " Compiler options: {0}", langCompilerConfig->CompilerOptions );
Console::WriteLine( " Compiler warning level: {0}", langCompilerConfig->WarningLevel.ToString() );
}
}
}
}
if ( provider == nullptr ) // Tell the user that the language provider was not found.
Console::WriteLine( "There is no provider configured for input language \"{0}\".", language );
CodeDomProvider provider;
// Check for a provider corresponding to the input language.
if (CodeDomProvider.IsDefinedLanguage(language))
{
provider = CodeDomProvider.CreateProvider(language);
// Display information about this language provider.
Console.WriteLine("Language provider: {0}",
provider.ToString());
Console.WriteLine();
Console.WriteLine(" Default file extension: {0}",
provider.FileExtension);
Console.WriteLine();
// Get the compiler settings for this language.
CompilerInfo langCompilerInfo = CodeDomProvider.GetCompilerInfo(language);
CompilerParameters langCompilerConfig = langCompilerInfo.CreateDefaultCompilerParameters();
Console.WriteLine(" Compiler options: {0}",
langCompilerConfig.CompilerOptions);
Console.WriteLine(" Compiler warning level: {0}",
langCompilerConfig.WarningLevel);
}
else
{
// Tell the user that the language provider was not found.
Console.WriteLine("There is no provider configured for input language \"{0}\".",
language);
}
Dim provider As CodeDomProvider
' Check for a provider corresponding to the input language.
If CodeDomProvider.IsDefinedLanguage(language) Then
provider = CodeDomProvider.CreateProvider(language)
' Display information about this language provider.
Console.WriteLine("Language provider: {0}", _
provider.ToString())
Console.WriteLine()
Console.WriteLine(" Default file extension: {0}", _
provider.FileExtension)
Console.WriteLine()
' Get the compiler settings for this language.
Dim langCompilerInfo As CompilerInfo = CodeDomProvider.GetCompilerInfo(language)
Dim langCompilerConfig As CompilerParameters = langCompilerInfo.CreateDefaultCompilerParameters()
Console.WriteLine(" Compiler options: {0}", _
langCompilerConfig.CompilerOptions)
Console.WriteLine(" Compiler warning level: {0}", _
langCompilerConfig.WarningLevel)
Else
' Tell the user that the language provider was not found.
Console.WriteLine("There is no provider configured for input language ""{0}"".", _
language)
End If
Comentarios
El <elemento system.codedom> del archivo de configuración de la máquina contiene los valores de configuración del proveedor de idioma y del compilador para cada CodeDomProvider implementación del equipo. Para obtener información sobre los archivos de configuración de la máquina, consulte la sección Archivos de configuración de la máquina en Configuración de aplicaciones. El GetCompilerInfo método busca en cada elemento de configuración del proveedor el nombre de idioma especificado. La instancia devuelta CompilerInfo contiene los valores configurados del proveedor de lenguaje y del compilador.
El IsDefinedLanguage método comprueba si al menos una implementación del proveedor admite un lenguaje específico. Puede validar un nombre de idioma mediante IsDefinedLanguage antes de pasarlo a GetCompilerInfo. Esto evita la iniciación System.Configuration.ConfigurationException de cuando se accede a la CompilerInfo instancia de para un nombre de idioma no admitido.
Si se configura más de una implementación del proveedor para el nombre del idioma de entrada, GetCompilerInfo devuelve la configuración del último elemento de configuración del proveedor coincidente.
Los nombres de idioma no distinguen mayúsculas de minúsculas.