CodeDomProvider.CreateProvider Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient une CodeDomProvider instance pour la langue spécifiée.
Surcharges
| Nom | Description |
|---|---|
| CreateProvider(String) |
Obtient une CodeDomProvider instance pour la langue spécifiée. |
| CreateProvider(String, IDictionary<String,String>) |
Obtient une CodeDomProvider instance pour les options de langue et de fournisseur spécifiées. |
CreateProvider(String)
Obtient une CodeDomProvider instance pour la langue spécifiée.
public:
static System::CodeDom::Compiler::CodeDomProvider ^ CreateProvider(System::String ^ language);
[System.Runtime.InteropServices.ComVisible(false)]
public static System.CodeDom.Compiler.CodeDomProvider CreateProvider(string language);
[<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 de la langue.
Retours
Fournisseur CodeDOM implémenté pour le nom de langue spécifié.
- Attributs
Exceptions
Le language fournisseur n’est pas 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;
// 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
Note
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 spécifique du fournisseur de langage. Par exemple, utilisez la méthode CreateProvider pour obtenir une instance de fournisseur qui prend en charge le nom de langue "CSharp" ; utilisez la surcharge de méthode Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) 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 une langue 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 passez 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 langage ne respectent pas la casse.
Voir aussi
S’applique à
CreateProvider(String, IDictionary<String,String>)
Obtient une CodeDomProvider instance pour les options de langue et de fournisseur spécifiées.
public:
static System::CodeDom::Compiler::CodeDomProvider ^ CreateProvider(System::String ^ language, System::Collections::Generic::IDictionary<System::String ^, System::String ^> ^ providerOptions);
[System.Runtime.InteropServices.ComVisible(false)]
public static System.CodeDom.Compiler.CodeDomProvider CreateProvider(string language, System.Collections.Generic.IDictionary<string,string> providerOptions);
[<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 de la langue.
- providerOptions
- IDictionary<String,String>
Collection d’options de fournisseur à partir du fichier de configuration.
Retours
Fournisseur CodeDOM implémenté pour le nom et les options de langue 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
Note
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 une langue et des options spécifiques. Les noms de langage 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 Remarques de la CreateProvider(String) méthode.