CodeDomProvider.CreateProvider Metoda

Definice

CodeDomProvider Získá instanci pro zadaný jazyk.

Přetížení

Name Description
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
Zdroj:
CodeDomProvider.cs
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

Na language tomto počítači nemá nakonfigurovaného zprostředkovatele.

To language je null.

Volající nemá požadované oprávnění.

Příklady

Následující příklad kódu určuje implementaci CodeDomProvider jazyka zadávání a zobrazí nakonfigurované nastavení pro zprostředkovatele jazyka. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu 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

Poznámky

Note

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 poskytovatelů. CreateProvider umožňuje zadat za běhu zprostředkovatele kódu, kterého chcete vytvořit instanci. Pokud víte v době návrhu, který zprostředkovatele kódu se má použít, měli byste vytvořit instanci tohoto zprostředkovatele kódu, a ne použít metodu CreateProvider .

Metoda CreateProvider vrátí CodeDomProvider instanci pro konkrétní název jazyka; je 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í konfigurační prvek.

Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) Přetížení metody použijte, pokud chcete konkrétní implementaci zprostředkovatele jazyka. Například pomocí metody CreateProvider získejte instanci zprostředkovatele, která podporuje název jazyka "CSharp"; Pomocí přetížení metody Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) získejte instanci zprostředkovatele speciálně pro implementaci Microsoft.CSharp.CSharpCodeProvider. Tuto metodu Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) použijte, pokud máte pro jazyk více zprostředkovatelů kódu a chcete vytvořit instanci konkrétního zprostředkovatele kódu.

Metoda IsDefinedLanguage zkontroluje, jestli alespoň jedna implementace zprostředkovatele podporuje konkrétní jazyk. Název jazyka můžete před předáním IsDefinedLanguageověřit pomocí CreateProvider . Pokud předáte nepodporovaný název jazyka, CreateProviderSystem.Configuration.ConfigurationException vyvolá se.

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 určitý jazyk.

Názvy jazyků 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
Zdroj:
CodeDomProvider.cs
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 a možnosti jazyka.

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

Note

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 poskytovatelů. CreateProvider(String, IDictionary<String,String>) umožňuje zadat za běhu verzi zprostředkovatele kódu, kterého chcete vytvořit instanci. Pokud víte, v době návrhu, který zprostředkovatele kódu se má použít, měli byste místo metody CreateProvider(String, IDictionary<String,String>) 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. Názvy jazyků nerozlišují malá a velká písmena. Informace o podporovaných možnostech poskytovatele 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 Poznámky metody CreateProvider(String) .

Platí pro