CodeDomProvider.GetLanguageFromExtension(String) Método

Definición

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.

Se aplica a

Consulte también