CodeDomProvider.CreateProvider Methode

Definition

Ruft eine CodeDomProvider Instanz für die angegebene Sprache ab.

Überlädt

Name Beschreibung
CreateProvider(String)

Ruft eine CodeDomProvider Instanz für die angegebene Sprache ab.

CreateProvider(String, IDictionary<String,String>)

Ruft eine CodeDomProvider Instanz für die angegebenen Sprach- und Anbieteroptionen ab.

CreateProvider(String)

Ruft eine CodeDomProvider Instanz für die angegebene Sprache ab.

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

Parameter

language
String

Der Sprachname.

Gibt zurück

Ein CodeDOM-Anbieter, der für den angegebenen Sprachnamen implementiert ist.

Attribute

Ausnahmen

Der language Anbieter ist auf diesem Computer nicht konfiguriert.

language ist null.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Beispiele

Im folgenden Codebeispiel wird die CodeDomProvider Implementierung für eine Eingabesprache bestimmt und die konfigurierten Einstellungen für den Sprachanbieter angezeigt. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die CompilerInfo Klasse bereitgestellt wird.

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

Hinweise

Hinweis

Diese Methode wird am häufigsten verwendet, um eine Instanz eines Codeanbieters in einer Anwendung zu erstellen, die optional einen von mehreren Anbietern verwenden kann. CreateProvider ermöglicht Es Ihnen, zur Laufzeit den Codeanbieter anzugeben, den Sie instanziieren möchten. Wenn Sie zur Entwurfszeit wissen, welcher Codeanbieter verwendet werden soll, sollten Sie eine Instanz dieses Codeanbieters erstellen, anstatt die CreateProvider Methode zu verwenden.

Die CreateProvider Methode gibt eine CodeDomProvider Instanz für einen bestimmten Sprachnamen zurück. Sie ähnelt dem Aufrufen der Activator.CreateInstance Methode mit dem Sprachanbietertyp. Verwenden Sie diese Option CreateProvider , wenn Sie eine konfigurierte Anbieterimplementierung für einen Sprachnamen dynamisch finden möchten.

Wenn mehr als eine Anbieterimplementierung für den Sprachnamen konfiguriert ist, CreateProvider wird eine Anbieterinstanz für das letzte übereinstimmende Konfigurationselement zurückgegeben.

Verwenden Sie die Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) Methodenüberladung, wenn Sie eine bestimmte Implementierung eines Sprachanbieters wünschen. Verwenden Sie beispielsweise die methode CreateProvider, um eine Anbieterinstanz abzurufen, die den Sprachnamen "CSharp" unterstützt; verwenden Sie die Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)-Methodenüberladung, um eine Anbieterinstanz speziell für die Implementierung Microsoft.CSharp.CSharpCodeProvider abzurufen. Verwenden Sie die Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) Methode, wenn Sie über mehrere Codeanbieter für eine Sprache verfügen und einen bestimmten Codeanbieter instanziieren möchten.

Die IsDefinedLanguage Methode überprüft, ob mindestens eine Anbieterimplementierung eine bestimmte Sprache unterstützt. Sie können einen Sprachnamen überprüfen, indem IsDefinedLanguage Sie ihn vor der Übergabe an CreateProvider. Wenn Sie einen nicht unterstützten Sprachnamen an CreateProvider einen System.Configuration.ConfigurationException Ausgelösten übergeben.

Die GetAllCompilerInfo Methode kann verwendet werden, um alle CodeDomProvider Implementierungen auf einem Computer zu ermitteln, einschließlich zusätzlicher Implementierungen, die von Entwicklern und Compileranbietern bereitgestellt werden, die in der<> Computerkonfigurationsdatei (Machine.config) identifiziert werden.

Die CreateProvider Methode gibt eine Instanz einer CodeDomProvider Implementierung für eine bestimmte Sprache zurück.

Bei Sprachnamen wird die Groß-/Kleinschreibung nicht beachtet.

Weitere Informationen

Gilt für:

CreateProvider(String, IDictionary<String,String>)

Ruft eine CodeDomProvider Instanz für die angegebenen Sprach- und Anbieteroptionen ab.

public:
 static System::CodeDom::Compiler::CodeDomProvider ^ CreateProvider(System::String ^ language, System::Collections::Generic::IDictionary<System::String ^, System::String ^> ^ providerOptions);
[System.Runtime.InteropServices.ComVisible(false)]
public static System.CodeDom.Compiler.CodeDomProvider CreateProvider(string language, System.Collections.Generic.IDictionary<string,string> providerOptions);
[<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

Parameter

language
String

Der Sprachname.

providerOptions
IDictionary<String,String>

Eine Sammlung von Anbieteroptionen aus der Konfigurationsdatei.

Gibt zurück

Ein CodeDOM-Anbieter, der für den angegebenen Sprachnamen und die angegebenen Optionen implementiert ist.

Attribute

Beispiele

Das folgende Beispiel zeigt, wie Sie mithilfe des providerOptions Parameters eine Instanz eines Anbieters erstellen.

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

Hinweise

Hinweis

Diese Methode wird am häufigsten verwendet, um eine Instanz eines Codeanbieters in einer Anwendung zu erstellen, die optional einen von mehreren Anbietern verwenden kann. CreateProvider(String, IDictionary<String,String>) ermöglicht es Ihnen, zur Laufzeit die Version des Codeanbieters anzugeben, die Sie instanziieren möchten. Wenn Sie zur Entwurfszeit wissen, welcher Codeanbieter verwendet werden soll, sollten Sie eine Instanz dieses Codeanbieters erstellen, anstatt die CreateProvider(String, IDictionary<String,String>) Methode zu verwenden.

Verwenden Sie diese Option CreateProvider(String, IDictionary<String,String>) , wenn Sie eine konfigurierte Anbieterimplementierung für eine bestimmte Sprache und Optionen dynamisch finden möchten. Bei Sprachnamen wird die Groß-/Kleinschreibung nicht beachtet. Informationen zu unterstützten Anbieteroptionen finden Sie in der spezifischen CodeDOM-Anbieterdokumentation.

Informationen zum Überprüfen eines Anbieters und Zum Aufrufen eines Anbieters, wenn mehrere Anbieterimplementierungen für den Sprachnamen konfiguriert sind, finden Sie im Abschnitt "Hinweise" der CreateProvider(String) Methode.

Gilt für: