CodeDomProvider.CreateProvider Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
CodeDomProvider Lekéri a megadott nyelv egy példányát.
Túlterhelések
| Name | Description |
|---|---|
| CreateProvider(String) |
CodeDomProvider Lekéri a megadott nyelv egy példányát. |
| CreateProvider(String, IDictionary<String,String>) |
CodeDomProvider Lekéri a megadott nyelvhez és szolgáltatói beállításokhoz tartozó példányt. |
CreateProvider(String)
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
CodeDomProvider Lekéri a megadott nyelv egy példányát.
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
Paraméterek
- language
- String
A nyelv neve.
Válaszok
A megadott nyelvnévhez implementált CodeDOM-szolgáltató.
- Attribútumok
Kivételek
A language számítógépen nincs konfigurált szolgáltató.
Az language van null.
A hívó nem rendelkezik a szükséges engedéllyel.
Példák
Az alábbi példakód egy bemeneti nyelv implementációját CodeDomProvider határozza meg, és megjeleníti a nyelvszolgáltató konfigurált beállításait. Ez a példakód egy nagyobb, az CompilerInfo osztályhoz tartozó példa része.
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
Megjegyzések
Note
Ezt a módszert leggyakrabban egy olyan kódszolgáltató példányának létrehozására használják egy alkalmazásban, amely opcionálisan több szolgáltató egyikét is használhatja. CreateProvider lehetővé teszi a példányosítani kívánt kódszolgáltató futásidőben történő megadását. Ha a tervezéskor tudja, hogy melyik kódszolgáltatót kell használni, a metódus használata helyett a kódszolgáltató egy példányát kell létrehoznia CreateProvider .
A CreateProvider metódus egy példányt CodeDomProvider ad vissza egy adott nyelvnévhez; hasonló ahhoz, hogy a metódust Activator.CreateInstance a nyelvszolgáltató típusával hívja meg. Akkor érdemes használni CreateProvider , ha dinamikusan meg szeretne találni egy konfigurált szolgáltatói implementációt egy nyelvnévhez.
Ha egynél több szolgáltatói implementáció van konfigurálva a nyelvnévhez, CreateProvider az utolsó egyező konfigurációelem szolgáltatópéldányát adja vissza.
A metódus túlterhelését Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) akkor használja, ha egy adott nyelvi szolgáltató implementálására van szüksége. A CreateProvider metódussal például lekérhet egy olyan szolgáltatópéldányt, amely támogatja a nyelv nevét "CSharp"; A Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) metódus túlterhelésével kérje le a szolgáltatópéldányt kifejezetten a Microsoft.CSharp.CSharpCodeProvider implementációhoz. Akkor használja ezt a Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) módszert, ha több kódszolgáltatóval rendelkezik egy nyelvhez, és egy adott kódszolgáltatót szeretne példányosítani.
A IsDefinedLanguage módszer ellenőrzi, hogy legalább egy szolgáltatói implementáció támogatja-e az adott nyelvet. A nyelvnév érvényesítése előtt érvényesítheti a IsDefinedLanguagenyelv nevétCreateProvider. Ha nem támogatott nyelvnevet CreateProvider ad át a System.Configuration.ConfigurationException rendszernek.
Ez a GetAllCompilerInfo módszer a számítógép összes CodeDomProvider implementációjának meghatározására használható, beleértve a fejlesztők és fordítógyártók által biztosított további implementációkat is, amelyek a gép konfigurációs fájljának system.codedom< elemében> (Machine.config) vannak azonosítva.
A CreateProvider metódus egy adott nyelv implementációjának egy példányát CodeDomProvider adja vissza.
A nyelvnevek nem érzéketlenek.
Lásd még
A következőre érvényes:
CreateProvider(String, IDictionary<String,String>)
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
- Forrás:
- CodeDomProvider.cs
CodeDomProvider Lekéri a megadott nyelvhez és szolgáltatói beállításokhoz tartozó példányt.
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
Paraméterek
- language
- String
A nyelv neve.
- providerOptions
- IDictionary<String,String>
A konfigurációs fájl szolgáltatói beállításainak gyűjteménye.
Válaszok
A megadott nyelvnévhez és beállításokhoz implementált CodeDOM-szolgáltató.
- Attribútumok
Példák
Az alábbi példa bemutatja, hogyan hozhat létre egy szolgáltatópéldányt a providerOptions paraméter használatával.
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
Megjegyzések
Note
Ezt a módszert leggyakrabban egy olyan kódszolgáltató példányának létrehozására használják egy alkalmazásban, amely opcionálisan több szolgáltató egyikét is használhatja. CreateProvider(String, IDictionary<String,String>) lehetővé teszi, hogy futásidőben adja meg a példányosítani kívánt kódszolgáltató verzióját. Ha a tervezéskor tudja, hogy melyik kódszolgáltatót kell használni, a metódus használata helyett a kódszolgáltató egy példányát CreateProvider(String, IDictionary<String,String>) kell létrehoznia.
Akkor használható CreateProvider(String, IDictionary<String,String>) , ha dinamikusan szeretne egy adott nyelvhez és beállításokhoz konfigurált szolgáltatói implementációt találni. A nyelvnevek nem érzéketlenek. A támogatott szolgáltatói lehetőségekről a CodeDOM szolgáltatói dokumentációjában talál további információt.
A szolgáltató érvényesítésével és a szolgáltató meghívásával kapcsolatos információkért, ha egynél több szolgáltatói implementáció van konfigurálva a nyelvnévhez, tekintse meg a CreateProvider(String) metódus Megjegyzések szakaszát.