CodeDomProvider.CreateProvider Metoda

Definicja

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) .

Dotyczy