Share via


CodeDomProvider.CreateProvider Método

Definición

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 .

Se aplica a