CodeDomProvider.GetLanguageFromExtension(String) Метод

Определение

Возвращает имя языка, связанное с указанным расширением имени файла, как указано в 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

Параметры

extension
String

Расширение имени файла.

Возвращаемое значение

Имя языка, связанное с расширением имени файла, как указано в CodeDomProvider параметрах конфигурации компилятора.

Атрибуты

Исключения

У extension него нет настроенного поставщика языка на этом компьютере.

Значение extension равно null.

Вызывающий объект не имеет требуемого разрешения.

Примеры

Следующий пример кода определяет реализацию CodeDomProvider для расширения имени входного файла и отображает настроенные параметры для поставщика языка. Этот пример кода является частью более крупного примера, предоставленного для CompilerInfo класса.

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

Комментарии

Элемент< system.codedom> в файле конфигурации компьютера (Machine.config) содержит параметры конфигурации поставщика языка и компилятора для каждой CodeDomProvider реализации на компьютере. Метод GetLanguageFromExtension выполняет поиск каждого элемента конфигурации поставщика для указанного расширения имени файла.

Метод IsDefinedExtension проверяет, поддерживает ли по крайней мере одна реализация поставщика определенного расширения имени файла. Перед передачей IsDefinedExtensionв него можно проверить расширение GetLanguageFromExtension имени файла. Это предотвращает GetLanguageFromExtension создание System.Configuration.ConfigurationException неподдерживаемого расширения имени файла.

Если реализация поставщика поддерживает расширение имени входного файла, и для этого поставщика настроено несколько поддерживаемых языков, то GetLanguageFromExtension возвращает имя первого языка для этого поставщика. Если для расширения имени входного файла настроено несколько поставщиков, GetLanguageFromExtension возвращает имя языка из последнего элемента конфигурации поставщика сопоставления.

Имена языков и расширения имен файлов не учитывает регистр.

Применяется к

См. также раздел