語言

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 防止因不支援的副檔名而拋出 a System.Configuration.ConfigurationException 。

如果提供者實作支援輸入檔名副檔名,且該提供者有多種支援語言,則回 GetLanguageFromExtension 傳該提供者的第一個語言名稱。 若輸入檔名副檔名設定多個提供者實作,則回 GetLanguageFromExtension 傳最後一個提供者設定元素的語言名稱。

語言名稱和檔名副檔名不區分大小寫。

適用於

另請參閱