CodeDomProvider.CreateProvider Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un'istanza CodeDomProvider per la lingua specificata.
Overload
| Nome | Descrizione |
|---|---|
| CreateProvider(String) |
Ottiene un'istanza CodeDomProvider per la lingua specificata. |
| CreateProvider(String, IDictionary<String,String>) |
Ottiene un'istanza CodeDomProvider per la lingua e le opzioni del provider specificate. |
CreateProvider(String)
Ottiene un'istanza CodeDomProvider per la lingua specificata.
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
Parametri
- language
- String
Nome della lingua.
Valori restituiti
Provider CodeDOM implementato per il nome di lingua specificato.
- Attributi
Eccezioni
Non language dispone di un provider configurato in questo computer.
Il language è null.
Il chiamante non dispone dell'autorizzazione richiesta.
Esempio
Nell'esempio di codice seguente viene determinata l'implementazione CodeDomProvider di una lingua di input e vengono visualizzate le impostazioni configurate per il provider di linguaggio. Questo esempio di codice fa parte di un esempio più ampio fornito per 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
Commenti
Note
Questo metodo viene usato più comunemente per creare un'istanza di un provider di codice in un'applicazione che può facoltativamente usare uno dei diversi provider. CreateProvider consente di specificare in fase di esecuzione il provider di codice di cui si vuole creare un'istanza. Se si conosce in fase di progettazione quale provider di codice deve essere usato, è necessario creare un'istanza del provider di codice anziché usare il CreateProvider metodo .
Il CreateProvider metodo restituisce un'istanza CodeDomProvider per un nome di lingua specifico. È simile alla chiamata al Activator.CreateInstance metodo con il tipo di provider di linguaggio. Usare CreateProvider quando si desidera trovare in modo dinamico un'implementazione del provider configurata per un nome di lingua.
Se più implementazioni del provider sono configurate per il nome della lingua, CreateProvider restituisce un'istanza del provider per l'ultimo elemento di configurazione corrispondente.
Usare l'overload del Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) metodo quando si vuole un'implementazione specifica del provider di linguaggio. Ad esempio, usare il metodo CreateProvider per ottenere un'istanza del provider che supporta il nome della lingua "CSharp"; usare l'overload del metodo Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) per ottenere un'istanza del provider specificamente per l'implementazione di Microsoft.CSharp.CSharpCodeProvider. Usare il Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) metodo se si dispone di più provider di codice per un linguaggio e si desidera creare un'istanza di un provider di codice specifico.
Il IsDefinedLanguage metodo verifica se almeno un'implementazione del provider supporta un linguaggio specifico. È possibile convalidare un nome di lingua usando IsDefinedLanguage prima di passarlo a CreateProvider. Se si passa un nome di lingua non supportato a CreateProvider viene generata un'eccezione System.Configuration.ConfigurationException .
Il GetAllCompilerInfo metodo può essere usato per determinare tutte le CodeDomProvider implementazioni in un computer, incluse le implementazioni aggiuntive fornite dagli sviluppatori e dai fornitori del compilatore identificati nell'elemento< system.codedom> nel file di configurazione del computer (Machine.config).
Il CreateProvider metodo restituisce un'istanza di un'implementazione CodeDomProvider per un linguaggio specifico.
I nomi delle lingue non fanno distinzione tra maiuscole e minuscole.
Vedi anche
Si applica a
CreateProvider(String, IDictionary<String,String>)
Ottiene un'istanza CodeDomProvider per la lingua e le opzioni del provider specificate.
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
Parametri
- language
- String
Nome della lingua.
- providerOptions
- IDictionary<String,String>
Raccolta di opzioni del provider dal file di configurazione.
Valori restituiti
Provider CodeDOM implementato per il nome e le opzioni della lingua specificati.
- Attributi
Esempio
Nell'esempio seguente viene illustrato come creare un'istanza di un provider usando il providerOptions parametro .
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
Commenti
Note
Questo metodo viene usato più comunemente per creare un'istanza di un provider di codice in un'applicazione che può facoltativamente usare uno dei diversi provider. CreateProvider(String, IDictionary<String,String>) consente di specificare in fase di esecuzione la versione del provider di codice di cui si vuole creare un'istanza. Se si conosce in fase di progettazione quale provider di codice deve essere usato, è necessario creare un'istanza del provider di codice anziché usare il CreateProvider(String, IDictionary<String,String>) metodo .
Usare CreateProvider(String, IDictionary<String,String>) quando si vuole trovare in modo dinamico un'implementazione del provider configurata per un linguaggio e opzioni specifici. I nomi delle lingue non fanno distinzione tra maiuscole e minuscole. Per informazioni sulle opzioni del provider supportate, vedere la documentazione specifica del provider CodeDOM.
Per informazioni sulla convalida di un provider e sulla chiamata di un provider se sono configurate più implementazioni del provider per il nome della lingua, vedere la sezione Osservazioni del CreateProvider(String) metodo .