Udostępnij za pośrednictwem


CodeDomProvider.GetLanguageFromExtension(String) Metoda

Definicja

Zwraca nazwę języka skojarzona z określonym rozszerzeniem nazwy pliku zgodnie z konfiguracją kompilatora 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

Parametry

extension
String

Rozszerzenie nazwy pliku.

Zwraca

Nazwa języka skojarzona z rozszerzeniem nazwy pliku, zgodnie z konfiguracją w ustawieniach konfiguracji kompilatora CodeDomProvider .

Atrybuty

Wyjątki

Na extension tym komputerze nie ma skonfigurowanego dostawcy języka.

Wartość extension to null.

Obiekt wywołujący nie posiada wymaganych uprawnień.

Przykłady

Poniższy przykład kodu określa implementację CodeDomProvider rozszerzenia nazwy pliku wejściowego i wyświetla skonfigurowane ustawienia dostawcy języka. Ten przykład kodu jest częścią większego przykładu udostępnionego CompilerInfo dla klasy .

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

Uwagi

Element< system.codedom> w pliku konfiguracji maszyny (Machine.config) zawiera ustawienia konfiguracji dostawcy języka i kompilatora dla każdej CodeDomProvider implementacji na komputerze. Metoda GetLanguageFromExtension wyszukuje każdy element konfiguracji dostawcy dla określonego rozszerzenia nazwy pliku.

Metoda sprawdza, czy co najmniej jedna implementacja IsDefinedExtension dostawcy obsługuje określone rozszerzenie nazwy pliku. Przed przekazaniem GetLanguageFromExtensiondo pliku można zweryfikować rozszerzenie nazwy pliku przy użyciu polecenia IsDefinedExtension . GetLanguageFromExtension Zapobiega to zgłaszaniu elementu System.Configuration.ConfigurationException dla nieobsługiwanego rozszerzenia nazwy pliku.

Jeśli implementacja dostawcy obsługuje rozszerzenie nazwy pliku wejściowego i istnieje wiele obsługiwanych języków skonfigurowanych dla tego dostawcy, zwraca GetLanguageFromExtension pierwszą nazwę języka dla tego dostawcy. Jeśli dla rozszerzenia nazwy pliku wejściowego skonfigurowano więcej niż jedną implementację dostawcy, GetLanguageFromExtension zwraca nazwę języka z ostatniego pasującego elementu konfiguracji dostawcy.

Nazwy języków i rozszerzenia nazw plików są bez uwzględniania wielkości liter.

Dotyczy

Zobacz też