Condividi tramite


CodeDomProvider.GetLanguageFromExtension(String) Metodo

Definizione

Restituisce un nome di linguaggio associato all'estensione di file specificata, in base alle impostazioni nella sezione di configurazione del compilatore 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

Parametri

extension
String

Estensione di file.

Restituisce

Nome di linguaggio associato all'estensione di file, in base alle impostazioni di configurazione del compilatore CodeDomProvider.

Attributi

Eccezioni

extension non è associato a un provider configurato nel computer.

L'elemento extension è null.

Il chiamante non dispone dell'autorizzazione richiesta.

Esempio

L'esempio di codice seguente determina l'implementazione CodeDomProvider per un'estensione del nome file di input e visualizza le impostazioni configurate per il provider di linguaggio. Questo esempio di codice fa parte di un esempio più grande fornito per la CompilerInfo classe.

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

Commenti

L'elemento< system.codedom> nel file di configurazione del computer (Machine.config) contiene le impostazioni di configurazione del provider di linguaggio e del compilatore per ogni CodeDomProvider implementazione nel computer. Il GetLanguageFromExtension metodo cerca ogni elemento di configurazione del provider per l'estensione del nome file specificata.

Il IsDefinedExtension metodo verifica se almeno un'implementazione del provider supporta un'estensione del nome file specifica. È possibile convalidare un'estensione del nome file usando IsDefinedExtension prima di passarla a GetLanguageFromExtension. Ciò impedisce GetLanguageFromExtension di generare un oggetto System.Configuration.ConfigurationException per un'estensione del nome di file non supportata.

Se un'implementazione del provider supporta l'estensione del nome file di input e per tale provider sono configurate più lingue supportate, restituisce GetLanguageFromExtension il primo nome della lingua per tale provider. Se più di un'implementazione del provider è configurata per l'estensione del nome del file di input, GetLanguageFromExtension restituisce il nome della lingua dall'ultimo elemento di configurazione del provider corrispondente.

I nomi di lingua e le estensioni del nome file sono senza distinzione tra maiuscole e minuscole.

Si applica a

Vedi anche