Freigeben über


CodeDomProvider.CreateProvider Methode

Definition

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

Überlädt

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)

Quelle:
CodeDomProvider.cs
Quelle:
CodeDomProvider.cs
Quelle:
CodeDomProvider.cs

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

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

Parameter

language
String

Der Sprachname.

Gibt zurück

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

Attribute

Ausnahmen

language verfügt auf diesem Computer über keinen konfigurierten Anbieter.

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 = 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

Hinweise

Hinweis

Diese Methode wird am häufigsten verwendet, um eine instance 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 instance dieses Codeanbieters erstellen, anstatt die CreateProvider -Methode zu verwenden.

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

Wenn mehrere Anbieterimplementierungen für den Sprachnamen konfiguriert sind, CreateProvider wird ein Anbieter instance für das letzte übereinstimmende Konfigurationselement zurückgegeben.

Verwenden Sie die Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) Methodenüberladung, wenn Sie eine bestimmte Sprachanbieterimplementierung benötigen. Verwenden Sie beispielsweise die CreateProvider -Methode, um einen Anbieter instance abzurufen, der den Sprachnamen "CSharp"unterstützt. Verwenden Sie die Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) Methodenüberladung, um einen Anbieter instance speziell für die Microsoft.CSharp.CSharpCodeProvider Implementierung 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 mit IsDefinedLanguage überprüfen, bevor Sie ihn an CreateProviderübergeben. Wenn Sie einen nicht unterstützten Sprachnamen an CreateProvider übergeben, System.Configuration.ConfigurationException wird ausgelöst.

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

Die CreateProvider -Methode gibt einen instance 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>)

Quelle:
CodeDomProvider.cs
Quelle:
CodeDomProvider.cs
Quelle:
CodeDomProvider.cs

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);
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

Parameter

language
String

Der Sprachname.

providerOptions
IDictionary<String,String>

Eine Auflistung der Anbieteroptionen aus der Konfigurationsdatei.

Gibt zurück

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

Attribute

Beispiele

Im folgenden Beispiel wird gezeigt, wie sie mithilfe des -Parameters eine instance eines Anbieters providerOptions 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 instance 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 instance dieses Codeanbieters erstellen, anstatt die CreateProvider(String, IDictionary<String,String>) -Methode zu verwenden.

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

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: