Bagikan melalui


CodeDomProvider.GetLanguageFromExtension(String) Metode

Definisi

Mengembalikan nama bahasa yang terkait dengan ekstensi nama file yang ditentukan, seperti yang dikonfigurasi di bagian CodeDomProvider konfigurasi pengkompilasi.

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

Parameter

extension
String

Ekstensi nama file.

Mengembalikan

Nama bahasa yang terkait dengan ekstensi nama file, seperti yang dikonfigurasi dalam CodeDomProvider pengaturan konfigurasi pengkompilasi.

Atribut

Pengecualian

Tidak extension memiliki penyedia bahasa yang dikonfigurasi pada komputer ini.

extension adalah null.

Pemanggil tidak memiliki izin yang diperlukan.

Contoh

Contoh kode berikut menentukan CodeDomProvider implementasi untuk ekstensi nama file input dan menampilkan pengaturan yang dikonfigurasi untuk penyedia bahasa. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk CompilerInfo kelas .

if (  !fileExtension->StartsWith(  "." ) )
   fileExtension = String::Concat( ".", fileExtension );

// Get the language associated with the file extension.
CodeDomProvider^ provider = nullptr;
if ( CodeDomProvider::IsDefinedExtension( fileExtension ) )
{
   String^ language = CodeDomProvider::GetLanguageFromExtension( fileExtension );
   if ( language )
      Console::WriteLine( "The language \"{0}\" is associated with file extension \"{1}\"\n",
                           language, fileExtension );

   // Check for a corresponding language provider.
   if ( language && CodeDomProvider::IsDefinedLanguage( language ) )
   {
      provider = CodeDomProvider::CreateProvider( language );
      if ( provider )
      {
         // Display information about this language provider.
         Console::WriteLine( "Language provider:  {0}\n", provider->ToString() );
         
         // Get the compiler settings for this language.
         CompilerInfo^ langCompilerInfo = CodeDomProvider::GetCompilerInfo( language );
         if ( langCompilerInfo )
         {
            CompilerParameters^ langCompilerConfig = langCompilerInfo->CreateDefaultCompilerParameters();
            if ( langCompilerConfig )
            {
               Console::WriteLine( "  Compiler options:        {0}", langCompilerConfig->CompilerOptions );
               Console::WriteLine( "  Compiler warning level:  {0}", langCompilerConfig->WarningLevel.ToString() );
            }
         }
      }
   }
}

if ( provider == nullptr )  // 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 (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

Keterangan

System.codedom<> Element dalam file konfigurasi komputer (Machine.config) berisi penyedia bahasa dan pengaturan konfigurasi pengompilasi untuk setiap CodeDomProvider implementasi di komputer. Metode ini GetLanguageFromExtension mencari setiap elemen konfigurasi penyedia untuk ekstensi nama file yang ditentukan.

Metode ini IsDefinedExtension memeriksa apakah setidaknya satu implementasi penyedia mendukung ekstensi nama file tertentu. Anda dapat memvalidasi ekstensi nama file menggunakan IsDefinedExtension sebelum meneruskannya ke GetLanguageFromExtension. Ini mencegah GetLanguageFromExtension melempar System.Configuration.ConfigurationException untuk ekstensi nama file yang tidak didukung.

Jika implementasi penyedia mendukung ekstensi nama file input, dan ada beberapa bahasa yang didukung yang dikonfigurasi untuk penyedia tersebut, maka GetLanguageFromExtension mengembalikan nama bahasa pertama untuk penyedia tersebut. Jika lebih dari satu implementasi penyedia dikonfigurasi untuk ekstensi nama file input, GetLanguageFromExtension mengembalikan nama bahasa dari elemen konfigurasi penyedia yang cocok terakhir.

Nama bahasa dan ekstensi nama file tidak peka huruf besar/kecil.

Berlaku untuk

Lihat juga