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 CodeDomProvider instancia del idioma especificado.
Sobrecargas
| Nombre | Description |
|---|---|
| CreateProvider(String) |
Obtiene una CodeDomProvider instancia del idioma especificado. |
| CreateProvider(String, IDictionary<String,String>) |
Obtiene una CodeDomProvider instancia de para las opciones de idioma y proveedor especificadas. |
CreateProvider(String)
Obtiene una CodeDomProvider instancia del idioma especificado.
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
Parámetros
- language
- String
Nombre del idioma.
Devoluciones
Proveedor CodeDOM que se implementa para el nombre de idioma especificado.
- Atributos
Excepciones
language No tiene un proveedor configurado en este equipo.
El language es null.
El autor de la llamada no tiene el permiso necesario.
Ejemplos
En el ejemplo de código siguiente se determina la CodeDomProvider implementación de un idioma de entrada y se muestran las opciones configuradas para el proveedor de idioma. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para la CompilerInfo clase .
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
Note
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 para 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 quiera buscar dinámicamente una implementación de proveedor configurada para un nombre de idioma.
Si se configura más de una implementación del proveedor para el nombre del 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 método CreateProvider para obtener una instancia de proveedor que admita el nombre de idioma "CSharp"; use la sobrecarga del método Activator.CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) para obtener una instancia de proveedor específicamente para la implementación de Microsoft.CSharp.CSharpCodeProvider. 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 CreateProvider se System.Configuration.ConfigurationException 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>)
Obtiene una CodeDomProvider instancia de para las opciones de idioma y proveedor especificadas.
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
Parámetros
- language
- String
Nombre del idioma.
- providerOptions
- IDictionary<String,String>
Colección de opciones de proveedor del archivo de configuración.
Devoluciones
Proveedor CodeDOM que se implementa para el nombre y las opciones de idioma 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
Note
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>) le 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 quiera 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 se configura más de una implementación del proveedor para el nombre del idioma, vea la sección Comentarios del CreateProvider(String) método .