CodeDomProvider.CreateProvider Metoda

Definicja

Pobiera CodeDomProvider wystąpienie dla określonego języka.Gets a CodeDomProvider instance for the specified language.

Przeciążenia

CreateProvider(String)

Pobiera CodeDomProvider wystąpienie dla określonego języka.Gets a CodeDomProvider instance for the specified language.

CreateProvider(String, IDictionary<String,String>)

Pobiera CodeDomProvider wystąpienie dla określonego języka i opcji dostawcy.Gets a CodeDomProvider instance for the specified language and provider options.

CreateProvider(String)

Pobiera CodeDomProvider wystąpienie dla określonego języka.Gets a CodeDomProvider instance for the specified language.

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.The language name.

Zwraca

CodeDomProvider

Dostawca CodeDOM zaimplementowany dla określonej nazwy języka.A CodeDOM provider that is implemented for the specified language name.

Atrybuty

Wyjątki

Nie language ma skonfigurowanego dostawcy na tym komputerze.The language does not have a configured provider on this computer.

languageMa wartość null .The language is null.

Obiekt wywołujący nie posiada wymaganych uprawnień.The caller does not have the required permission.

Przykłady

Poniższy przykład kodu określa CodeDomProvider implementację języka wejściowego i wyświetla skonfigurowane ustawienia dla dostawcy języka.The following code example determines the CodeDomProvider implementation for an input language and displays the configured settings for the language provider. Ten przykład kodu jest częścią większego przykładu dostarczonego dla CompilerInfo klasy.This code example is part of a larger example provided for the CompilerInfo class.

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

Uwagi

Uwaga

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.This method is most commonly used to create an instance of a code provider in an application that may optionally use one of several providers. CreateProvider umożliwia określenie w czasie wykonywania dostawcy kodu, który chcesz utworzyć.CreateProvider allows you to specify at run time the code provider you wish to instantiate. Jeśli wiesz, w którym czasie projektowania ma być używany dostawca kodu, należy utworzyć wystąpienie tego dostawcy kodu zamiast korzystać z CreateProvider metody.If you know at design time which code provider is to be used, you should create an instance of that code provider rather than use the CreateProvider method.

CreateProviderMetoda zwraca CodeDomProvider wystąpienie dla określonej nazwy języka; jest podobna do wywołania Activator.CreateInstance metody z typem dostawcy języka.The CreateProvider method returns a CodeDomProvider instance for a specific language name; it is similar to calling the Activator.CreateInstance method with the language provider type. Użyj CreateProvider , aby dynamicznie znaleźć skonfigurowaną implementację dostawcy dla nazwy języka.Use CreateProvider when you want to dynamically find a configured provider implementation for a language name.

W przypadku skonfigurowania więcej niż jednej implementacji dostawcy dla nazwy języka CreateProvider Funkcja zwraca wystąpienie dostawcy dla ostatniego pasującego elementu konfiguracji.If more than one provider implementation is configured for the language name, CreateProvider returns a provider instance for the last matching configuration element.

Użyj Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) przeciążenia metody, jeśli chcesz zastosować określoną implementację dostawcy języka.Use the Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) method overload when you want a specific language provider implementation. Na przykład użyj metody, CreateProvider Aby uzyskać wystąpienie dostawcy, które obsługuje nazwę języka "CSharp" ; Użyj Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) przeciążenia metody, aby uzyskać wystąpienie dostawcy przeznaczone dla Microsoft.CSharp.CSharpCodeProvider implementacji.For example, use the CreateProvider method to get a provider instance that supports the language name "CSharp"; use the Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) method overload to get a provider instance specifically for the Microsoft.CSharp.CSharpCodeProvider implementation. Użyj Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) metody, jeśli masz wielu dostawców kodu dla języka i chcesz utworzyć wystąpienie określonego dostawcy kodu.Use the Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) method if you have multiple code providers for a language and you desire to instantiate a specific code provider.

IsDefinedLanguageMetoda sprawdza, czy co najmniej jedna implementacja dostawcy obsługuje określony język.The IsDefinedLanguage method checks whether at least one provider implementation supports a specific language. Możesz sprawdzić poprawność nazwy języka, używając IsDefinedLanguage przed przekazaniem jej do CreateProvider .You can validate a language name using IsDefinedLanguage before passing it to CreateProvider. W przypadku przekazania nieobsługiwanej nazwy języka do CreateProvider elementu System.Configuration.ConfigurationException .If you pass an unsupported language name to CreateProvider a System.Configuration.ConfigurationException is thrown.

GetAllCompilerInfoMetoda ta pozwala określić wszystkie CodeDomProvider wdrożenia na komputerze, w tym dodatkowe implementacje udostępnione przez deweloperów i dostawców kompilatora, które są identyfikowane w < > elemencie System. CodeDom w pliku konfiguracyjnym komputera (Machine.config).The GetAllCompilerInfo method can be used to determine all CodeDomProvider implementations on a computer, including additional implementations provided by developers and compiler vendors that are identified in the <system.codedom> Element in the machine configuration file (Machine.config).

CreateProviderMetoda zwraca wystąpienie CodeDomProvider implementacji dla określonego języka.The CreateProvider method returns an instance of a CodeDomProvider implementation for a specific language.

W nazwach języków nie jest rozróżniana wielkość liter.Language names are case-insensitive.

Zobacz też

Dotyczy

CreateProvider(String, IDictionary<String,String>)

Pobiera CodeDomProvider wystąpienie dla określonego języka i opcji dostawcy.Gets a CodeDomProvider instance for the specified language and provider options.

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.The language name.

providerOptions
IDictionary<String,String>

Kolekcja opcji dostawcy z pliku konfiguracji.A collection of provider options from the configuration file.

Zwraca

CodeDomProvider

Dostawca CodeDOM zaimplementowany dla określonej nazwy języka i opcji.A CodeDOM provider that is implemented for the specified language name and options.

Atrybuty

Przykłady

Poniższy przykład pokazuje, jak utworzyć wystąpienie dostawcy za pomocą providerOptions parametru.The following example shows how to create an instance of a provider by using the providerOptions parameter.

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

Uwaga

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.This method is most commonly used to create an instance of a code provider in an application that may optionally use one of several providers. CreateProvider(String, IDictionary<String,String>) umożliwia określenie w czasie wykonywania wersji dostawcy kodu, który chcesz utworzyć.CreateProvider(String, IDictionary<String,String>) enables you to specify at run time the version of the code provider you want to instantiate. Jeśli wiesz, w którym czasie projektowania ma być używany dostawca kodu, należy utworzyć wystąpienie tego dostawcy kodu zamiast korzystać z CreateProvider(String, IDictionary<String,String>) metody.If you know at design time which code provider is to be used, you should create an instance of that code provider instead of using the CreateProvider(String, IDictionary<String,String>) method.

Użyj CreateProvider(String, IDictionary<String,String>) , gdy chcesz dynamicznie znaleźć skonfigurowaną implementację dostawcy dla określonego języka i opcji.Use CreateProvider(String, IDictionary<String,String>) when you want to dynamically find a configured provider implementation for a specific language and options. W nazwach języków nie jest rozróżniana wielkość liter.Language names are case-insensitive. Informacje o obsługiwanych opcjach dostawcy można znaleźć w dokumentacji dotyczącej dostawcy CodeDOM.For information about supported provider options, see the specific CodeDOM provider documentation.

Aby uzyskać informacje na temat weryfikowania dostawcy i wywoływania dostawcy w przypadku skonfigurowania więcej niż jednej implementacji dostawcy dla nazwy języka, zobacz sekcję Uwagi w CreateProvider(String) metodzie.For information about validating a provider and calling a provider if more than one provider implementation is configured for the language name, see the Remarks section of the CreateProvider(String) method.

Dotyczy