CodeDomProvider.CreateProvider Metodo

Definizione

Ottiene un'istanza della classe CodeDomProvider per il linguaggio specificato.

Overload

CreateProvider(String)

Ottiene un'istanza della classe CodeDomProvider per il linguaggio specificato.

CreateProvider(String, IDictionary<String,String>)

Ottiene un'istanza di CodeDomProvider per le opzioni della lingua e del provider specificate.

CreateProvider(String)

Origine:
CodeDomProvider.cs
Origine:
CodeDomProvider.cs
Origine:
CodeDomProvider.cs

Ottiene un'istanza della classe CodeDomProvider per il linguaggio specificato.

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

Parametri

language
String

Nome di linguaggio.

Restituisce

Provider CodeDOM implementato per il nome di linguaggio specificato.

Attributi

Eccezioni

language non è associato a un provider configurato nel computer.

L'elemento language è null.

Il chiamante non dispone dell'autorizzazione richiesta.

Esempio

L'esempio di codice seguente determina l'implementazione CodeDomProvider per una lingua 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.

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

Nota

Questo metodo viene usato più comunemente per creare un'istanza di un provider di codice in un'applicazione che può usare facoltativamente uno dei diversi provider. CreateProvider consente di specificare in fase di esecuzione il provider di codice che si desidera creare un'istanza. Se si conosce in fase di progettazione quale provider di codice deve essere usato, è necessario creare un'istanza del provider di codice anziché usare il CreateProvider metodo .

Il CreateProvider metodo restituisce un'istanza CodeDomProvider per un nome di lingua specifico. È simile a chiamare il metodo con il Activator.CreateInstance tipo di provider di lingua. Usare CreateProvider quando si vuole trovare dinamicamente un'implementazione del provider configurata per un nome del linguaggio.

Se più implementazioni del provider sono configurate per il nome della lingua, CreateProvider restituisce un'istanza del provider per l'ultimo elemento di configurazione corrispondente.

Usare l'overload del metodo quando si vuole un'implementazione specifica del Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) provider di linguaggio. Ad esempio, usare il metodo per ottenere un'istanza del provider che supporta il nome "CSharp"della lingua; usare l'overload CreateProvider del Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) metodo per ottenere un'istanza del provider specificamente per l'implementazioneMicrosoft.CSharp.CSharpCodeProvider. Usare il metodo se sono presenti più provider di codice per un linguaggio e si vuole creare un'istanza Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) di un provider di codice specifico.

Il IsDefinedLanguage metodo verifica se almeno un'implementazione del provider supporta un linguaggio specifico. È possibile convalidare un nome della lingua usando IsDefinedLanguage prima di passarlo a CreateProvider. Se si passa un nome di lingua non supportato a CreateProvider un System.Configuration.ConfigurationException oggetto viene generato.

Il GetAllCompilerInfo metodo può essere usato per determinare tutte le CodeDomProvider implementazioni in un computer, incluse le implementazioni aggiuntive fornite dagli sviluppatori e dai fornitori del compilatore identificati nell'elemento< system.codedom> nel file di configurazione del computer (Machine.config).

Il CreateProvider metodo restituisce un'istanza di un'implementazione CodeDomProvider per un linguaggio specifico.

I nomi della lingua sono senza distinzione tra maiuscole e minuscole.

Vedi anche

Si applica a

CreateProvider(String, IDictionary<String,String>)

Origine:
CodeDomProvider.cs
Origine:
CodeDomProvider.cs
Origine:
CodeDomProvider.cs

Ottiene un'istanza di CodeDomProvider per le opzioni della lingua e del provider specificate.

public:
 static System::CodeDom::Compiler::CodeDomProvider ^ CreateProvider(System::String ^ language, System::Collections::Generic::IDictionary<System::String ^, System::String ^> ^ providerOptions);
public static System.CodeDom.Compiler.CodeDomProvider CreateProvider (string language, System.Collections.Generic.IDictionary<string,string> providerOptions);
[System.Runtime.InteropServices.ComVisible(false)]
public static System.CodeDom.Compiler.CodeDomProvider CreateProvider (string language, System.Collections.Generic.IDictionary<string,string> providerOptions);
static member CreateProvider : string * System.Collections.Generic.IDictionary<string, string> -> System.CodeDom.Compiler.CodeDomProvider
[<System.Runtime.InteropServices.ComVisible(false)>]
static member CreateProvider : string * System.Collections.Generic.IDictionary<string, string> -> System.CodeDom.Compiler.CodeDomProvider
Public Shared Function CreateProvider (language As String, providerOptions As IDictionary(Of String, String)) As CodeDomProvider

Parametri

language
String

Nome di linguaggio.

providerOptions
IDictionary<String,String>

Insieme di opzioni del provider del file di configurazione.

Restituisce

Provider CodeDOM implementato per il nome di linguaggio indicato e per le opzioni specificate.

Attributi

Esempio

Nell'esempio seguente viene illustrato come creare un'istanza di un provider usando il providerOptions parametro .

using System;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
using Microsoft.VisualBasic;
using System.Collections.Generic;

namespace ProviderOptions
{
    class Program
    {
        static void Main(string[] args)
        {
            DisplayCSharpCompilerInfo();
            DisplayVBCompilerInfo();
            Console.WriteLine("Press Enter key to exit.");
            Console.ReadLine();
        }
        static void DisplayCSharpCompilerInfo()
        {
            Dictionary<string, string> provOptions =
            new Dictionary<string, string>();

            provOptions.Add("CompilerVersion", "v4");
            // Get the provider for Microsoft.CSharp
            CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp", provOptions);

            // Display the C# language provider information.
            Console.WriteLine("CSharp provider is {0}",
                provider.ToString());
            Console.WriteLine("  Provider hash code:     {0}",
                provider.GetHashCode().ToString());
            Console.WriteLine("  Default file extension: {0}",
                provider.FileExtension);

            Console.WriteLine();
        }

        static void DisplayVBCompilerInfo()
        {
            Dictionary<string, string> provOptions =
            new Dictionary<string, string>();

            provOptions.Add("CompilerVersion", "v3.5");
            // Get the provider for Microsoft.VisualBasic
            CodeDomProvider provider = CodeDomProvider.CreateProvider("VisualBasic", provOptions);

            // Display the Visual Basic language provider information.
            Console.WriteLine("Visual Basic provider is {0}",
                provider.ToString());
            Console.WriteLine("  Provider hash code:     {0}",
                provider.GetHashCode().ToString());
            Console.WriteLine("  Default file extension: {0}",
                provider.FileExtension);

            Console.WriteLine();
        }
    }
}
Imports System.CodeDom.Compiler
Imports Microsoft.CSharp
Imports System.Collections.Generic



Class Program

    Shared Sub Main(ByVal args() As String)
        DisplayCSharpCompilerInfo()
        DisplayVBCompilerInfo()
        Console.WriteLine("Press Enter key to exit.")
        Console.ReadLine()

    End Sub

    Shared Sub DisplayCSharpCompilerInfo()
        Dim provOptions As New Dictionary(Of String, String)
        provOptions.Add("CompilerVersion", "v4")
        ' Get the provider for Microsoft.CSharp
        Dim provider As CodeDomProvider = CodeDomProvider.CreateProvider("CSharp", provOptions)

        ' Display the C# language provider information.
        Console.WriteLine("CSharp provider is {0}", provider.ToString())
        Console.WriteLine("  Provider hash code:     {0}", provider.GetHashCode().ToString())
        Console.WriteLine("  Default file extension: {0}", provider.FileExtension)

        Console.WriteLine()

    End Sub


    Shared Sub DisplayVBCompilerInfo()
        Dim provOptions As New Dictionary(Of String, String)
        provOptions.Add("CompilerVersion", "v3.5")
        ' Get the provider for Microsoft.VisualBasic
        Dim provider As CodeDomProvider = CodeDomProvider.CreateProvider("VisualBasic", provOptions)

        ' Display the Visual Basic language provider information.
        Console.WriteLine("Visual Basic provider is {0}", provider.ToString())
        Console.WriteLine("  Provider hash code:     {0}", provider.GetHashCode().ToString())
        Console.WriteLine("  Default file extension: {0}", provider.FileExtension)

        Console.WriteLine()

    End Sub
End Class

Commenti

Nota

Questo metodo viene usato più comunemente per creare un'istanza di un provider di codice in un'applicazione che può usare facoltativamente uno dei diversi provider. CreateProvider(String, IDictionary<String,String>) consente di specificare in fase di esecuzione la versione del provider di codice che si vuole creare un'istanza. Se si conosce in fase di progettazione quale provider di codice deve essere usato, è necessario creare un'istanza del provider di codice anziché usare il CreateProvider(String, IDictionary<String,String>) metodo .

Usare CreateProvider(String, IDictionary<String,String>) quando si vuole trovare dinamicamente un'implementazione del provider configurata per una lingua e opzioni specifiche. I nomi della lingua sono senza distinzione tra maiuscole e minuscole. Per informazioni sulle opzioni del provider supportate, vedere la documentazione specifica del provider CodeDOM.

Per informazioni sulla convalida di un provider e sulla chiamata di un provider se più implementazioni del provider sono configurate per il nome della lingua, vedere la sezione Osservazioni del CreateProvider(String) metodo.

Si applica a