CodeDomProvider.CreateProvider Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
CodeDomProvider Pobiera wystąpienie dla określonego języka.
Przeciążenia
| Nazwa | Opis |
|---|---|
| CreateProvider(String) |
CodeDomProvider Pobiera wystąpienie dla określonego języka. |
| CreateProvider(String, IDictionary<String,String>) |
CodeDomProvider Pobiera wystąpienie dla określonego języka i opcji dostawcy. |
CreateProvider(String)
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
CodeDomProvider Pobiera wystąpienie dla określonego języka.
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
Nazwa języka.
Zwraca
Dostawca CodeDOM implementowany dla określonej nazwy języka.
- Atrybuty
Wyjątki
Na language tym komputerze nie ma skonfigurowanego dostawcy.
language jest null.
Obiekt wywołujący nie ma wymaganych uprawnień.
Przykłady
Poniższy przykład kodu określa implementację CodeDomProvider języka wejściowego i wyświetla skonfigurowane ustawienia dostawcy języka. Ten przykład kodu jest częścią większego przykładu udostępnionego dla klasy 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
Uwagi
Note
Ta metoda jest najczęściej używana do tworzenia wystąpienia dostawcy kodu w aplikacji, która może opcjonalnie używać jednego z kilku dostawców. CreateProvider Umożliwia określenie w czasie wykonywania dostawcy kodu, który chcesz utworzyć wystąpienie. Jeśli wiesz w czasie projektowania, który dostawca kodu ma być używany, należy utworzyć wystąpienie tego dostawcy kodu, a nie użyć CreateProvider metody .
Metoda CreateProvider zwraca CodeDomProvider wystąpienie dla określonej nazwy języka. Jest ona podobna do wywoływania Activator.CreateInstance metody z typem dostawcy języka. Użyj CreateProvider polecenia , jeśli chcesz dynamicznie znaleźć skonfigurowaną implementację dostawcy dla nazwy języka.
Jeśli dla nazwy języka skonfigurowano więcej niż jedną implementację dostawcy, CreateProvider zwraca wystąpienie dostawcy dla ostatniego pasującego elementu konfiguracji.
Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) Użyj przeciążenia metody, jeśli chcesz zaimplementować określonego dostawcę języka. Na przykład użyj metody CreateProvider, aby uzyskać wystąpienie dostawcy obsługujące nazwę języka "CSharp"; użyj przeciążenia metody Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo), aby uzyskać wystąpienie dostawcy specjalnie dla implementacji Microsoft.CSharp.CSharpCodeProvider.
Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) Użyj metody , jeśli masz wielu dostawców kodu dla języka i chcesz utworzyć wystąpienie określonego dostawcy kodu.
Metoda sprawdza, czy co najmniej jedna implementacja IsDefinedLanguage dostawcy obsługuje określony język. Przed przekazaniem jej do IsDefinedLanguageelementu można zweryfikować nazwę języka przy użyciu polecenia CreateProvider . Jeśli przekażesz nieobsługiwaną nazwę języka do CreateProviderSystem.Configuration.ConfigurationException elementu , zostanie zwrócona.
Metody GetAllCompilerInfo można użyć do określenia wszystkich CodeDomProvider implementacji na komputerze, w tym dodatkowych implementacji dostarczonych przez deweloperów i dostawców kompilatora, które są identyfikowane w <elemencie system.codedom> w pliku konfiguracji komputera (Machine.config).
Metoda CreateProvider zwraca wystąpienie implementacji CodeDomProvider dla określonego języka.
Nazwy języków są bez uwzględniania wielkości liter.
Zobacz też
Dotyczy
CreateProvider(String, IDictionary<String,String>)
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
- Źródło:
- CodeDomProvider.cs
CodeDomProvider Pobiera wystąpienie dla określonego języka i opcji dostawcy.
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
Nazwa języka.
- providerOptions
- IDictionary<String,String>
Kolekcja opcji dostawcy z pliku konfiguracji.
Zwraca
Dostawca CodeDOM implementowany dla określonej nazwy i opcji języka.
- Atrybuty
Przykłady
W poniższym przykładzie pokazano, jak utworzyć wystąpienie dostawcy przy użyciu 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
Uwagi
Note
Ta metoda jest najczęściej używana do tworzenia wystąpienia dostawcy kodu w aplikacji, która może opcjonalnie używać jednego z kilku dostawców. CreateProvider(String, IDictionary<String,String>) Umożliwia określenie w czasie wykonywania wersji dostawcy kodu, który chcesz utworzyć wystąpienie. Jeśli wiesz w czasie projektowania, który dostawca kodu ma być używany, należy utworzyć wystąpienie tego dostawcy kodu zamiast używać CreateProvider(String, IDictionary<String,String>) metody .
Użyj CreateProvider(String, IDictionary<String,String>) polecenia , aby dynamicznie znaleźć skonfigurowaną implementację dostawcy dla określonego języka i opcji. Nazwy języków są bez uwzględniania wielkości liter. Aby uzyskać informacje o obsługiwanych opcjach dostawcy, zobacz dokumentację dostawcy CodeDOM.
Aby uzyskać informacje o weryfikowaniu dostawcy i wywoływaniu dostawcy, jeśli dla nazwy języka skonfigurowano więcej niż jedną implementację dostawcy, zobacz sekcję Uwagi metody CreateProvider(String) .