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í
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
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
V language
tomto počítači nemá nakonfigurovaného zprostředkovatele.
Hodnota language
je null
.
Volající nemá požadované oprávnění.
Příklady
Následující příklad kódu určuje implementaci CodeDomProvider pro vstupní jazyk a zobrazí nakonfigurovaná nastavení pro zprostředkovatele jazyka. Tento příklad kódu je součástí většího příkladu CompilerInfo pro třídu .
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
Poznámky
Poznámka
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 zprostředkovatelů. CreateProvider umožňuje určit za běhu zprostředkovatele kódu, kterého chcete vytvořit instanci. Pokud v době návrhu víte, který zprostředkovatel kódu se má použít, měli byste místo použití CreateProvider metody vytvořit instanci tohoto zprostředkovatele kódu.
Metoda CreateProvider vrátí CodeDomProvider instanci pro konkrétní název jazyka; je to 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í prvek konfigurace.
Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) Přetížení metody použijte, pokud chcete konkrétní implementaci zprostředkovatele jazyka. Například použijte metodu CreateProvider k získání instance zprostředkovatele, která podporuje název "CSharp"
jazyka; pomocí Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) přetížení metody získejte instanci zprostředkovatele speciálně pro implementaci Microsoft.CSharp.CSharpCodeProvider . Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) Pokud máte pro jazyk více zprostředkovatelů kódu a chcete vytvořit instanci konkrétního zprostředkovatele kódu, použijte metodu .
Metoda IsDefinedLanguage zkontroluje, jestli alespoň jedna implementace zprostředkovatele podporuje konkrétní jazyk. Název jazyka můžete před předáním do CreateProviderověřit pomocí IsDefinedLanguage . Pokud předáte nepodporovaný název jazyka System.Configuration.ConfigurationException je CreateProvider vyvolána.
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 konkrétní jazyk.
V názvech jazyků se 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
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 jazyka a možnosti.
- 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
Poznámka
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 zprostředkovatelů. CreateProvider(String, IDictionary<String,String>) umožňuje za běhu určit verzi zprostředkovatele kódu, kterého chcete vytvořit instanci. Pokud v době návrhu víte, který zprostředkovatel kódu se má použít, měli byste místo použití CreateProvider(String, IDictionary<String,String>) metody 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. V názvech jazyků se nerozlišují malá a velká písmena. Informace o podporovaných možnostech zprostředkovatele 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 CreateProvider(String) Poznámky metody.