CodeDomProvider.CreateProvider Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
CodeDomProvider Získá instanci pro zadaný jazyk.
Přetížení
| Name | Description |
|---|---|
| CreateProvider(String) |
CodeDomProvider Získá instanci pro zadaný jazyk. |
| CreateProvider(String, IDictionary<String,String>) |
CodeDomProvider Získá instanci pro zadaný jazyk a možnosti zprostředkovatele. |
CreateProvider(String)
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
CodeDomProvider Získá instanci pro zadaný jazyk.
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
Parametry
- language
- String
Název jazyka.
Návraty
Zprostředkovatel CodeDOM, který je implementován pro zadaný název jazyka.
- Atributy
Výjimky
Na language tomto počítači nemá nakonfigurovaného zprostředkovatele.
To language je null.
Volající nemá požadované oprávnění.
Příklady
Následující příklad kódu určuje implementaci CodeDomProvider jazyka zadávání a zobrazí nakonfigurované nastavení pro zprostředkovatele jazyka. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu CompilerInfo.
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
Poznámky
Note
Tato metoda se nejčastěji používá k vytvoření instance zprostředkovatele kódu v aplikaci, která může volitelně použít jednoho z několika poskytovatelů. CreateProvider umožňuje zadat za běhu zprostředkovatele kódu, kterého chcete vytvořit instanci. Pokud víte v době návrhu, který zprostředkovatele kódu se má použít, měli byste vytvořit instanci tohoto zprostředkovatele kódu, a ne použít metodu CreateProvider .
Metoda CreateProvider vrátí CodeDomProvider instanci pro konkrétní název jazyka; je podobná volání Activator.CreateInstance metody s typem zprostředkovatele jazyka. Použijte CreateProvider , když chcete dynamicky najít nakonfigurovanou implementaci zprostředkovatele pro název jazyka.
Pokud je pro název jazyka nakonfigurováno více než jedna implementace zprostředkovatele, CreateProvider vrátí instanci zprostředkovatele pro poslední odpovídající konfigurační prvek.
Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) Přetížení metody použijte, pokud chcete konkrétní implementaci zprostředkovatele jazyka. Například pomocí metody CreateProvider získejte instanci zprostředkovatele, která podporuje název jazyka "CSharp"; Pomocí přetížení metody Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) získejte instanci zprostředkovatele speciálně pro implementaci Microsoft.CSharp.CSharpCodeProvider. Tuto metodu Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) použijte, pokud máte pro jazyk více zprostředkovatelů kódu a chcete vytvořit instanci konkrétního zprostředkovatele kódu.
Metoda IsDefinedLanguage zkontroluje, jestli alespoň jedna implementace zprostředkovatele podporuje konkrétní jazyk. Název jazyka můžete před předáním IsDefinedLanguageověřit pomocí CreateProvider . Pokud předáte nepodporovaný název jazyka, CreateProviderSystem.Configuration.ConfigurationException vyvolá se.
Metodu GetAllCompilerInfo lze použít k určení všech CodeDomProvider implementací v počítači, včetně dalších implementací poskytovaných vývojáři a dodavateli kompilátoru, které jsou identifikovány v elementu< system.codedom> v konfiguračním souboru počítače (Machine.config).
Metoda CreateProvider vrátí instanci CodeDomProvider implementace pro určitý jazyk.
Názvy jazyků nerozlišují malá a velká písmena.
Viz také
Platí pro
CreateProvider(String, IDictionary<String,String>)
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
- Zdroj:
- CodeDomProvider.cs
CodeDomProvider Získá instanci pro zadaný jazyk a možnosti zprostředkovatele.
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
Parametry
- language
- String
Název jazyka.
- providerOptions
- IDictionary<String,String>
Kolekce možností zprostředkovatele z konfiguračního souboru.
Návraty
Zprostředkovatel CodeDOM, který je implementován pro zadaný název a možnosti jazyka.
- Atributy
Příklady
Následující příklad ukazuje, jak vytvořit instanci zprostředkovatele pomocí parametru providerOptions .
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
Poznámky
Note
Tato metoda se nejčastěji používá k vytvoření instance zprostředkovatele kódu v aplikaci, která může volitelně použít jednoho z několika poskytovatelů. CreateProvider(String, IDictionary<String,String>) umožňuje zadat za běhu verzi zprostředkovatele kódu, kterého chcete vytvořit instanci. Pokud víte, v době návrhu, který zprostředkovatele kódu se má použít, měli byste místo metody CreateProvider(String, IDictionary<String,String>) vytvořit instanci tohoto zprostředkovatele kódu.
Použijte CreateProvider(String, IDictionary<String,String>) , když chcete dynamicky najít nakonfigurovanou implementaci zprostředkovatele pro konkrétní jazyk a možnosti. Názvy jazyků nerozlišují malá a velká písmena. Informace o podporovaných možnostech poskytovatele najdete v dokumentaci ke konkrétnímu poskytovateli CodeDOM.
Informace o ověřování zprostředkovatele a volání zprostředkovatele, pokud je pro název jazyka nakonfigurováno více než jedna implementace zprostředkovatele, naleznete v části Poznámky metody CreateProvider(String) .