CodeDomProvider.CreateProvider Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.