CodeDomProvider.GetLanguageFromExtension(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 un nombre de lenguaje asociado a la extensión de nombre de archivo especificada, tal como se define en la sección de configuración del compilador CodeDomProvider.
public:
static System::String ^ GetLanguageFromExtension(System::String ^ extension);
public static string GetLanguageFromExtension (string extension);
[System.Runtime.InteropServices.ComVisible(false)]
public static string GetLanguageFromExtension (string extension);
static member GetLanguageFromExtension : string -> string
[<System.Runtime.InteropServices.ComVisible(false)>]
static member GetLanguageFromExtension : string -> string
Public Shared Function GetLanguageFromExtension (extension As String) As String
Parámetros
- extension
- String
Extensión de nombre de archivo.
Devoluciones
Nombre de lenguaje asociado a la extensión de nombre de archivo, tal como se define en la configuración del compilador CodeDomProvider.
- Atributos
Excepciones
extension
no tiene un proveedor de lenguaje configurado en este equipo.
El valor de extension
es null
.
El llamador no dispone del permiso requerido.
Ejemplos
En el ejemplo de código siguiente se determina la CodeDomProvider implementación de una extensión de nombre de archivo de entrada y se muestran las opciones configuradas para el proveedor de idioma. Este ejemplo de código es parte de un ejemplo más grande proporcionado para la clase CompilerInfo.
if ( !fileExtension->StartsWith( "." ) )
fileExtension = String::Concat( ".", fileExtension );
// Get the language associated with the file extension.
CodeDomProvider^ provider = nullptr;
if ( CodeDomProvider::IsDefinedExtension( fileExtension ) )
{
String^ language = CodeDomProvider::GetLanguageFromExtension( fileExtension );
if ( language )
Console::WriteLine( "The language \"{0}\" is associated with file extension \"{1}\"\n",
language, fileExtension );
// Check for a corresponding language provider.
if ( language && CodeDomProvider::IsDefinedLanguage( language ) )
{
provider = CodeDomProvider::CreateProvider( language );
if ( provider )
{
// Display information about this language provider.
Console::WriteLine( "Language provider: {0}\n", provider->ToString() );
// 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 language provider associated with input file extension \"{0}\".", fileExtension );
if (fileExtension[0] != '.')
{
fileExtension = "." + fileExtension;
}
// Get the language associated with the file extension.
if (CodeDomProvider.IsDefinedExtension(fileExtension))
{
CodeDomProvider provider;
String language = CodeDomProvider.GetLanguageFromExtension(fileExtension);
Console.WriteLine("The language \"{0}\" is associated with file extension \"{1}\"",
language, fileExtension);
Console.WriteLine();
// Next, check for a corresponding language provider.
if (CodeDomProvider.IsDefinedLanguage(language))
{
provider = CodeDomProvider.CreateProvider(language);
// Display information about this language provider.
Console.WriteLine("Language provider: {0}",
provider.ToString());
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 language provider associated with input file extension \"{0}\".",
fileExtension);
}
If Not fileExtension.StartsWith(".") Then
fileExtension = "." + fileExtension
End If
' Get the language associated with the file extension.
If CodeDomProvider.IsDefinedExtension(fileExtension) Then
Dim provider As CodeDomProvider
Dim language As String = CodeDomProvider.GetLanguageFromExtension(fileExtension)
Console.WriteLine("The language ""{0}"" is associated with file extension ""{1}""", _
language, fileExtension)
Console.WriteLine()
' Check for a corresponding language provider.
If CodeDomProvider.IsDefinedLanguage(language) Then
provider = CodeDomProvider.CreateProvider(language)
' Display information about this language provider.
Console.WriteLine("Language provider: {0}", _
provider.ToString())
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)
End If
Else
' Tell the user that the language provider was not found.
Console.WriteLine("There is no language provider associated with input file extension ""{0}"".", fileExtension)
End If
Comentarios
El <elemento system.codedom> del archivo de configuración de la máquina (Machine.config) contiene los valores de configuración del proveedor de idioma y del compilador para cada CodeDomProvider implementación del equipo. El GetLanguageFromExtension método busca en cada elemento de configuración del proveedor la extensión de nombre de archivo especificada.
El IsDefinedExtension método comprueba si al menos una implementación del proveedor admite una extensión de nombre de archivo específica. Puede validar una extensión de nombre de archivo mediante IsDefinedExtension antes de pasarla a GetLanguageFromExtension. Esto evita GetLanguageFromExtension que se produzca una System.Configuration.ConfigurationException excepción para una extensión de nombre de archivo no admitida.
Si una implementación del proveedor admite la extensión de nombre de archivo de entrada y hay varios idiomas admitidos configurados para ese proveedor, GetLanguageFromExtension devuelve el nombre de idioma de ese proveedor. Si se configura más de una implementación del proveedor para la extensión de nombre de archivo de entrada, GetLanguageFromExtension devuelve el nombre del idioma del último elemento de configuración del proveedor coincidente.
Los nombres de lenguaje y las extensiones de nombre de archivo no distinguen mayúsculas de minúsculas.