Condividi tramite


CodeDomProvider.GetCompilerInfo(String) Metodo

Definizione

Restituisce le impostazioni di configurazione del compilatore e del provider del linguaggio per il linguaggio specificato.

public:
 static System::CodeDom::Compiler::CompilerInfo ^ GetCompilerInfo(System::String ^ language);
public static System.CodeDom.Compiler.CompilerInfo GetCompilerInfo (string language);
[System.Runtime.InteropServices.ComVisible(false)]
public static System.CodeDom.Compiler.CompilerInfo GetCompilerInfo (string language);
static member GetCompilerInfo : string -> System.CodeDom.Compiler.CompilerInfo
[<System.Runtime.InteropServices.ComVisible(false)>]
static member GetCompilerInfo : string -> System.CodeDom.Compiler.CompilerInfo
Public Shared Function GetCompilerInfo (language As String) As CompilerInfo

Parametri

language
String

Nome di linguaggio.

Restituisce

Oggetto CompilerInfo in cui sono inserite le impostazioni dell'implementazione della classe CodeDomProvider configurata.

Attributi

Eccezioni

language non è associato a un provider configurato nel computer.

L'elemento language è null.

Il chiamante non dispone dell'autorizzazione richiesta.

Esempio

Nell'esempio di codice seguente viene determinata l'implementazione CodeDomProvider di una lingua di input e vengono visualizzate le impostazioni configurate per il provider di linguaggio. Questo esempio di codice fa parte di un esempio più ampio fornito per la CompilerInfo classe .

CodeDomProvider^ provider = nullptr;

// Check for a provider corresponding to the input language.  
if ( CodeDomProvider::IsDefinedLanguage( language ) )
{
   provider = CodeDomProvider::CreateProvider( language );
   if ( provider )
   {
      // Display information about this language provider.
      Console::WriteLine( "Language provider:  {0}", provider->ToString() );
      Console::WriteLine();
      Console::WriteLine( "  Default file extension:  {0}", provider->FileExtension );
      Console::WriteLine();
      
      // 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 provider configured for input language \"{0}\".", language );
CodeDomProvider provider;

// Check for a provider corresponding to the input language.
if (CodeDomProvider.IsDefinedLanguage(language))
{
    provider = CodeDomProvider.CreateProvider(language);

    // Display information about this language provider.

    Console.WriteLine("Language provider:  {0}",
        provider.ToString());
    Console.WriteLine();
    Console.WriteLine("  Default file extension:  {0}",
        provider.FileExtension);
    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 provider configured for input language \"{0}\".",
        language);
}
Dim provider As CodeDomProvider

' Check for a provider corresponding to the input language.  
If CodeDomProvider.IsDefinedLanguage(language) Then
   provider = CodeDomProvider.CreateProvider(language)
   
   ' Display information about this language provider.
   Console.WriteLine("Language provider:  {0}", _
       provider.ToString())
   Console.WriteLine()
   Console.WriteLine("  Default file extension:  {0}", _
       provider.FileExtension)
   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)
Else
   ' Tell the user that the language provider was not found.
   Console.WriteLine("There is no provider configured for input language ""{0}"".", _
       language)
End If

Commenti

L'elemento< system.codedom> nel file di configurazione del computer contiene il provider di linguaggio e le impostazioni di configurazione del compilatore per ogni CodeDomProvider implementazione nel computer. Per informazioni sui file di configurazione del computer, vedere la sezione File di configurazione del computer in Configurazione delle app. Il GetCompilerInfo metodo cerca il nome della lingua specificato in ogni elemento di configurazione del provider. L'istanza restituita CompilerInfo contiene il provider di linguaggio configurato e le impostazioni del compilatore.

Il IsDefinedLanguage metodo controlla se almeno un'implementazione del provider supporta un linguaggio specifico. È possibile convalidare un nome di lingua usando IsDefinedLanguage prima di passarlo a GetCompilerInfo. Ciò impedisce la generazione di un'eccezione System.Configuration.ConfigurationException quando si accede all'istanza CompilerInfo per un nome di lingua non supportato.

Se per il nome della lingua di input sono configurate più implementazioni del provider, GetCompilerInfo restituisce le impostazioni dell'ultimo elemento di configurazione del provider corrispondente.

I nomi delle lingue non fanno distinzione tra maiuscole e minuscole.

Si applica a

Vedi anche