CodeDomProvider.CreateProvider Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u een CodeDomProvider exemplaar op voor de opgegeven taal.
Overloads
| Name | Description |
|---|---|
| CreateProvider(String) |
Hiermee haalt u een CodeDomProvider exemplaar op voor de opgegeven taal. |
| CreateProvider(String, IDictionary<String,String>) |
Hiermee haalt u een CodeDomProvider exemplaar op voor de opgegeven taal- en provideropties. |
CreateProvider(String)
Hiermee haalt u een CodeDomProvider exemplaar op voor de opgegeven taal.
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
Parameters
- language
- String
De naam van de taal.
Retouren
Een CodeDOM-provider die is geïmplementeerd voor de opgegeven taalnaam.
- Kenmerken
Uitzonderingen
De language provider heeft geen geconfigureerde provider op deze computer.
De language is null.
De beller heeft niet de vereiste machtiging.
Voorbeelden
In het volgende codevoorbeeld wordt de CodeDomProvider implementatie voor een invoertaal bepaald en worden de geconfigureerde instellingen voor de taalprovider weergegeven. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de CompilerInfo klasse.
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
Opmerkingen
Note
Deze methode wordt meestal gebruikt om een exemplaar van een codeprovider te maken in een toepassing die eventueel een van de verschillende providers kan gebruiken. CreateProvider hiermee kunt u tijdens runtime de codeprovider opgeven die u wilt instantiëren. Als u op het ontwerptijd weet welke codeprovider moet worden gebruikt, moet u een exemplaar van die codeprovider maken in plaats van de CreateProvider methode te gebruiken.
De methode retourneert een CodeDomProvider exemplaar voor een specifieke taalnaam. Deze CreateProvider is vergelijkbaar met het aanroepen van de Activator.CreateInstance methode met het type taalprovider. Gebruik CreateProvider deze functie als u dynamisch een geconfigureerde provider-implementatie wilt vinden voor een taalnaam.
Als er meer dan één provider-implementatie is geconfigureerd voor de taalnaam, CreateProvider retourneert u een providerexemplementatie voor het laatste overeenkomende configuratie-element.
Gebruik de overbelasting van de Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) methode wanneer u een specifieke taalprovider wilt implementeren. Gebruik bijvoorbeeld de methode CreateProvider om een providerexemplaren op te halen die ondersteuning biedt voor de taalnaam "CSharp"; gebruik de Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) methode overbelasting om een providerexemplementatie specifiek op te halen voor de Microsoft.CSharp.CSharpCodeProvider-implementatie. Gebruik de Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) methode als u meerdere codeproviders voor een taal hebt en u een specifieke codeprovider wilt instantiëren.
De IsDefinedLanguage methode controleert of ten minste één provider-implementatie een specifieke taal ondersteunt. U kunt een taalnaam valideren voordat IsDefinedLanguage u deze doorgeeft aan CreateProvider. Als u een niet-ondersteunde taalnaam doorgeeft aan een System.Configuration.ConfigurationException taal, wordt er een gegenereerdCreateProvider.
De GetAllCompilerInfo methode kan worden gebruikt om alle CodeDomProvider implementaties op een computer te bepalen, inclusief aanvullende implementaties die worden geleverd door ontwikkelaars en compilerleveranciers die zijn geïdentificeerd in het <element system.codedom> in het computerconfiguratiebestand (Machine.config).
De CreateProvider methode retourneert een exemplaar van een CodeDomProvider implementatie voor een specifieke taal.
Taalnamen zijn niet hoofdlettergevoelig.
Zie ook
Van toepassing op
CreateProvider(String, IDictionary<String,String>)
Hiermee haalt u een CodeDomProvider exemplaar op voor de opgegeven taal- en provideropties.
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
Parameters
- language
- String
De naam van de taal.
- providerOptions
- IDictionary<String,String>
Een verzameling provideropties uit het configuratiebestand.
Retouren
Een CodeDOM-provider die is geïmplementeerd voor de opgegeven taalnaam en -opties.
- Kenmerken
Voorbeelden
In het volgende voorbeeld ziet u hoe u een exemplaar van een provider maakt met behulp van de providerOptions parameter.
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
Opmerkingen
Note
Deze methode wordt meestal gebruikt om een exemplaar van een codeprovider te maken in een toepassing die eventueel een van de verschillende providers kan gebruiken. CreateProvider(String, IDictionary<String,String>) hiermee kunt u tijdens runtime de versie van de codeprovider opgeven die u wilt instantiëren. Als u weet op welk moment de codeprovider moet worden gebruikt, moet u een exemplaar van die codeprovider maken in plaats van de CreateProvider(String, IDictionary<String,String>) methode te gebruiken.
Gebruik CreateProvider(String, IDictionary<String,String>) deze optie als u dynamisch een geconfigureerde provider-implementatie wilt vinden voor een specifieke taal en opties. Taalnamen zijn niet hoofdlettergevoelig. Zie de specifieke documentatie van de CodeDOM-provider voor informatie over ondersteunde provideropties.
Zie de sectie Opmerkingen van de CreateProvider(String) methode voor informatie over het valideren van een provider en het aanroepen van een provider als er meer dan één provider-implementatie is geconfigureerd voor de taalnaam.