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 della classe CodeDomProvider per il linguaggio specificato.
Overload
CreateProvider(String) |
Ottiene un'istanza della classe CodeDomProvider per il linguaggio specificato. |
CreateProvider(String, IDictionary<String,String>) |
Ottiene un'istanza di CodeDomProvider per le opzioni della lingua e del provider specificate. |
CreateProvider(String)
- Origine:
- CodeDomProvider.cs
- Origine:
- CodeDomProvider.cs
- Origine:
- CodeDomProvider.cs
Ottiene un'istanza della classe CodeDomProvider per il linguaggio specificato.
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
Parametri
- language
- String
Nome di linguaggio.
Restituisce
Provider CodeDOM implementato per il nome di linguaggio specificato.
- Attributi
Eccezioni
language
non è associato a un provider configurato nel computer.
L'elemento language
è null
.
Il chiamante non dispone dell'autorizzazione richiesta.
Esempio
L'esempio di codice seguente determina l'implementazione CodeDomProvider per una lingua di input e visualizza le impostazioni configurate per il provider di linguaggio. Questo esempio di codice fa parte di un esempio più grande fornito per 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
Commenti
Nota
Questo metodo viene usato più comunemente per creare un'istanza di un provider di codice in un'applicazione che può usare facoltativamente uno dei diversi provider. CreateProvider consente di specificare in fase di esecuzione il provider di codice che si desidera 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 a chiamare il metodo con il Activator.CreateInstance tipo di provider di lingua. Usare CreateProvider quando si vuole trovare dinamicamente un'implementazione del provider configurata per un nome del linguaggio.
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 metodo quando si vuole un'implementazione specifica del Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) provider di linguaggio. Ad esempio, usare il metodo per ottenere un'istanza del provider che supporta il nome "CSharp"
della lingua; usare l'overload CreateProvider del Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) metodo per ottenere un'istanza del provider specificamente per l'implementazioneMicrosoft.CSharp.CSharpCodeProvider. Usare il metodo se sono presenti più provider di codice per un linguaggio e si vuole creare un'istanza Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) di un provider di codice specifico.
Il IsDefinedLanguage metodo verifica se almeno un'implementazione del provider supporta un linguaggio specifico. È possibile convalidare un nome della lingua usando IsDefinedLanguage prima di passarlo a CreateProvider. Se si passa un nome di lingua non supportato a CreateProvider un System.Configuration.ConfigurationException oggetto viene generato.
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 della lingua sono senza distinzione tra maiuscole e minuscole.
Vedi anche
Si applica a
CreateProvider(String, IDictionary<String,String>)
- Origine:
- CodeDomProvider.cs
- Origine:
- CodeDomProvider.cs
- Origine:
- CodeDomProvider.cs
Ottiene un'istanza di CodeDomProvider per le opzioni della lingua e del provider specificate.
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
Parametri
- language
- String
Nome di linguaggio.
- providerOptions
- IDictionary<String,String>
Insieme di opzioni del provider del file di configurazione.
Restituisce
Provider CodeDOM implementato per il nome di linguaggio indicato e per le opzioni specificate.
- 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
Nota
Questo metodo viene usato più comunemente per creare un'istanza di un provider di codice in un'applicazione che può usare facoltativamente uno dei diversi provider. CreateProvider(String, IDictionary<String,String>) consente di specificare in fase di esecuzione la versione del provider di codice che 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 dinamicamente un'implementazione del provider configurata per una lingua e opzioni specifiche. I nomi della lingua sono senza 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 più implementazioni del provider sono configurate per il nome della lingua, vedere la sezione Osservazioni del CreateProvider(String) metodo.