CodeDomProvider.CreateProvider Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene una instancia de CodeDomProvider para el lenguaje especificado.
Sobrecargas
CreateProvider(String) |
Obtiene una instancia de CodeDomProvider para el lenguaje especificado. |
CreateProvider(String, IDictionary<String,String>) |
Obtiene una instancia de CodeDomProvider para el lenguaje y opciones de proveedor especificados. |
CreateProvider(String)
- Source:
- CodeDomProvider.cs
- Source:
- CodeDomProvider.cs
- Source:
- CodeDomProvider.cs
Obtiene una instancia de CodeDomProvider para el lenguaje especificado.
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
Parámetros
- language
- String
Nombre del lenguaje.
Devoluciones
Proveedor CodeDOM que se implementa para el nombre de lenguaje especificado.
- Atributos
Excepciones
language
no tiene un proveedor configurado en este equipo.
El valor de language
es null
.
El llamador no dispone del permiso requerido.
Ejemplos
En el ejemplo de código siguiente se determina la CodeDomProvider implementación de un idioma de entrada y se muestran los valores configurados para el proveedor de idioma. Este ejemplo de código es parte de un ejemplo más grande proporcionado para la clase CompilerInfo.
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
Comentarios
Nota
Este método se usa normalmente para crear una instancia de un proveedor de código en una aplicación que puede usar opcionalmente uno de varios proveedores. CreateProvider permite especificar en tiempo de ejecución el proveedor de código al que desea crear una instancia. Si sabe en tiempo de diseño qué proveedor de código se va a usar, debe crear una instancia de ese proveedor de código en lugar de usar el CreateProvider método .
El CreateProvider método devuelve una CodeDomProvider instancia de un nombre de idioma específico; es similar a llamar al Activator.CreateInstance método con el tipo de proveedor de idioma. Use CreateProvider cuando desee buscar dinámicamente una implementación de proveedor configurada para un nombre de idioma.
Si se configura más de una implementación de proveedor para el nombre de idioma, CreateProvider devuelve una instancia de proveedor para el último elemento de configuración coincidente.
Use la sobrecarga del Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) método cuando desee una implementación específica del proveedor de lenguaje. Por ejemplo, use el CreateProvider método para obtener una instancia de proveedor que admita el nombre "CSharp"
del lenguaje ; use la sobrecarga del Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) método para obtener una instancia de proveedor específicamente para la Microsoft.CSharp.CSharpCodeProvider implementación. Use el Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) método si tiene varios proveedores de código para un lenguaje y desea crear instancias de un proveedor de código específico.
El IsDefinedLanguage método comprueba si al menos una implementación del proveedor admite un lenguaje específico. Puede validar un nombre de idioma mediante IsDefinedLanguage antes de pasarlo a CreateProvider. Si pasa un nombre de idioma no admitido a CreateProviderSystem.Configuration.ConfigurationException se produce.
El GetAllCompilerInfo método se puede usar para determinar todas las CodeDomProvider implementaciones de un equipo, incluidas las implementaciones adicionales proporcionadas por desarrolladores y proveedores de compiladores que se identifican en el <elemento system.codedom> del archivo de configuración de la máquina (Machine.config).
El CreateProvider método devuelve una instancia de una CodeDomProvider implementación para un lenguaje específico.
Los nombres de idioma no distinguen mayúsculas de minúsculas.
Consulte también
Se aplica a
CreateProvider(String, IDictionary<String,String>)
- Source:
- CodeDomProvider.cs
- Source:
- CodeDomProvider.cs
- Source:
- CodeDomProvider.cs
Obtiene una instancia de CodeDomProvider para el lenguaje y opciones de proveedor especificados.
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
Parámetros
- language
- String
Nombre del lenguaje.
- providerOptions
- IDictionary<String,String>
Una colección de opciones de proveedor extraídas del archivo de configuración.
Devoluciones
Un proveedor CodeDOM que se implementa para el nombre del lenguaje y opciones especificados.
- Atributos
Ejemplos
En el ejemplo siguiente se muestra cómo crear una instancia de un proveedor mediante el providerOptions
parámetro .
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
Comentarios
Nota
Este método se usa normalmente para crear una instancia de un proveedor de código en una aplicación que puede usar opcionalmente uno de varios proveedores. CreateProvider(String, IDictionary<String,String>) permite especificar en tiempo de ejecución la versión del proveedor de código al que desea crear una instancia. Si sabe en tiempo de diseño qué proveedor de código se va a usar, debe crear una instancia de ese proveedor de código en lugar de usar el CreateProvider(String, IDictionary<String,String>) método .
Use CreateProvider(String, IDictionary<String,String>) cuando desee buscar dinámicamente una implementación de proveedor configurada para un idioma y opciones específicos. Los nombres de idioma no distinguen mayúsculas de minúsculas. Para obtener información sobre las opciones de proveedor admitidas, consulte la documentación específica del proveedor CodeDOM.
Para obtener información sobre cómo validar un proveedor y llamar a un proveedor si hay más de una implementación de proveedor configurada para el nombre de idioma, vea la sección Comentarios del CreateProvider(String) método .