Sdílet prostřednictvím


CodeDomProvider.CreateProvider Metoda

Definice

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.

Platí pro