CodeDomProvider.GetLanguageFromExtension(String) メソッド

定義

CodeDomProvider コンパイラ構成セクションで構成されている、指定したファイル名拡張子に関連付けられている言語名を返します。

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

パラメーター

extension
String

ファイル名拡張子。

返品

CodeDomProvider コンパイラ構成設定で構成されている、ファイル名拡張子に関連付けられている言語名。

属性

例外

extensionには、このコンピューターに構成された言語プロバイダーがありません。

extensionnull です。

呼び出し元に必要なアクセス許可がありません。

次のコード例では、入力ファイル名拡張子の 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

注釈

コンピューター構成ファイル (Machine.config) の <system.codedom> 要素 には、コンピューター上の各 CodeDomProvider 実装の言語プロバイダーとコンパイラ構成設定が含まれています。 GetLanguageFromExtension メソッドは、指定されたファイル名拡張子を各プロバイダー構成要素で検索します。

IsDefinedExtension メソッドは、少なくとも 1 つのプロバイダー実装が特定のファイル名拡張子をサポートしているかどうかを確認します。 GetLanguageFromExtensionに渡す前に、IsDefinedExtensionを使用してファイル名拡張子を検証できます。 これにより、 GetLanguageFromExtension がサポートされていないファイル名拡張子の System.Configuration.ConfigurationException をスローできなくなります。

プロバイダーの実装で入力ファイル名拡張子がサポートされており、そのプロバイダーに対して複数のサポートされている言語が構成されている場合、 GetLanguageFromExtension はそのプロバイダーの最初の言語名を返します。 入力ファイル名拡張子に対して複数のプロバイダー実装が構成されている場合、 GetLanguageFromExtension は最後に一致するプロバイダー構成要素から言語名を返します。

言語名とファイル名拡張子では、大文字と小文字が区別されません。

適用対象

こちらもご覧ください