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 ha configurado en la sección configuración del CodeDomProvider compilador.
public:
static System::String ^ GetLanguageFromExtension(System::String ^ extension);
[System.Runtime.InteropServices.ComVisible(false)]
public static string GetLanguageFromExtension(string extension);
[<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 idioma asociado a la extensión de nombre de archivo, tal como se ha configurado en los valores de configuración del CodeDomProvider compilador.
- Atributos
Excepciones
extension No tiene un proveedor de idioma configurado en este equipo.
El extension es null.
El autor de la llamada no tiene el permiso necesario.
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 los valores configurados para el proveedor de idioma. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para la CompilerInfo clase .
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 compatible.
Si una implementación de proveedor admite la extensión de nombre de archivo de entrada y hay varios idiomas admitidos configurados para ese proveedor, GetLanguageFromExtension devuelve el nombre del primer idioma para 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.