CodeDomProvider.CreateProvider Méthode

Définition

Crée une instance de CodeDomProvider pour le langage spécifié.

Surcharges

CreateProvider(String)

Crée une instance de CodeDomProvider pour le langage spécifié.

CreateProvider(String, IDictionary<String,String>)

Obtient une instance CodeDomProvider pour le langage et les options de fournisseur spécifiés.

CreateProvider(String)

Crée une instance de CodeDomProvider pour le langage spécifié.

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

Paramètres

language
String

Nom du langage.

Retours

CodeDomProvider

Fournisseur CodeDOM qui est implémentée pour le nom du langage spécifié.

Attributs

Exceptions

Le language n'a pas de fournisseur configuré sur cet ordinateur.

language a la valeur null.

L'appelant n'a pas l'autorisation requise.

Exemples

L’exemple de code suivant détermine l’implémentation CodeDomProvider d’une langue d’entrée et affiche les paramètres configurés pour le fournisseur de langues. Cet exemple de code fait partie d’un exemple plus grand fourni pour la CompilerInfo classe.

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

Remarques

Notes

Cette méthode est généralement utilisée pour créer une instance d’un fournisseur de code dans une application qui peut éventuellement utiliser l’un de plusieurs fournisseurs. CreateProvider vous permet de spécifier au moment de l’exécution le fournisseur de code que vous souhaitez instancier. Si vous savez au moment du design quel fournisseur de code doit être utilisé, vous devez créer une instance de ce fournisseur de code plutôt que d’utiliser la CreateProvider méthode.

La CreateProvider méthode retourne une CodeDomProvider instance pour un nom de langue spécifique ; elle est similaire à l’appel de la Activator.CreateInstance méthode avec le type de fournisseur de langue. Utilisez CreateProvider quand vous souhaitez rechercher dynamiquement une implémentation de fournisseur configurée pour un nom de langage.

Si plusieurs implémentations de fournisseur sont configurées pour le nom de langue, CreateProvider retourne une instance de fournisseur pour le dernier élément de configuration correspondant.

Utilisez la surcharge de Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) méthode lorsque vous souhaitez une implémentation de fournisseur de langage spécifique. Par exemple, utilisez la CreateProvider méthode pour obtenir une instance de fournisseur qui prend en charge le nom du langage "CSharp"; utilisez la Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) surcharge de méthode pour obtenir une instance de fournisseur spécifiquement pour l’implémentation Microsoft.CSharp.CSharpCodeProvider . Utilisez la Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) méthode si vous avez plusieurs fournisseurs de code pour un langage et que vous souhaitez instancier un fournisseur de code spécifique.

La IsDefinedLanguage méthode vérifie si au moins une implémentation de fournisseur prend en charge un langage spécifique. Vous pouvez valider un nom de langue en utilisant IsDefinedLanguage avant de le passer à CreateProvider. Si vous transmettez un nom de langue non pris en charge à CreateProvider un System.Configuration.ConfigurationException nom de langue est levée.

La GetAllCompilerInfo méthode peut être utilisée pour déterminer toutes les CodeDomProvider implémentations sur un ordinateur, y compris les implémentations supplémentaires fournies par les développeurs et les fournisseurs de compilateur identifiés dans l’élément< system.codedom> dans le fichier de configuration de l’ordinateur (Machine.config).

La CreateProvider méthode retourne une instance d’une CodeDomProvider implémentation pour un langage spécifique.

Les noms de langue ne respectent pas la casse.

Voir aussi

S’applique à

CreateProvider(String, IDictionary<String,String>)

Obtient une instance CodeDomProvider pour le langage et les options de fournisseur spécifiés.

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

Paramètres

language
String

Nom du langage.

providerOptions
IDictionary<String,String>

Collection d'options de fournisseur issue du fichier de configuration.

Retours

CodeDomProvider

Fournisseur CodeDOM implémenté pour le nom de langage et les options spécifiés.

Attributs

Exemples

L’exemple suivant montre comment créer une instance d’un fournisseur à l’aide du providerOptions paramètre.

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

Remarques

Notes

Cette méthode est généralement utilisée pour créer une instance d’un fournisseur de code dans une application qui peut éventuellement utiliser l’un de plusieurs fournisseurs. CreateProvider(String, IDictionary<String,String>) vous permet de spécifier au moment de l’exécution la version du fournisseur de code que vous souhaitez instancier. Si vous savez au moment du design quel fournisseur de code doit être utilisé, vous devez créer une instance de ce fournisseur de code au lieu d’utiliser la CreateProvider(String, IDictionary<String,String>) méthode.

Utilisez CreateProvider(String, IDictionary<String,String>) quand vous souhaitez rechercher dynamiquement une implémentation de fournisseur configurée pour un langage et des options spécifiques. Les noms de langue ne respectent pas la casse. Pour plus d’informations sur les options de fournisseur prises en charge, consultez la documentation spécifique du fournisseur CodeDOM.

Pour plus d’informations sur la validation d’un fournisseur et l’appel d’un fournisseur si plusieurs implémentations de fournisseur sont configurées pour le nom de la langue, consultez la section Notes de la CreateProvider(String) méthode.

S’applique à