Exportar (0) Imprimir
Expandir todo

BuildProvider.CodeCompilerType (Propiedad)

Actualización: noviembre 2007

Representa el tipo de compilador utilizado por un proveedor de generación para crear código fuente para un tipo de archivo personalizado.

Espacio de nombres:  System.Web.Compilation
Ensamblado:  System.Web (en System.Web.dll)

public virtual CompilerType CodeCompilerType { get; }
/** @property */
public CompilerType get_CodeCompilerType()

public function get CodeCompilerType () : CompilerType

Valor de propiedad

Tipo: System.Web.Compilation.CompilerType
Objeto System.Web.Compilation.CompilerType de sólo lectura que representa el generador de código, el compilador de código y la configuración del compilador que se utiliza para generar código fuente para la ruta de acceso virtual. La clase base devuelve null.

Utilice la propiedad CodeCompilerType para proporcionar los valores de compilación del código fuente para una implementación de BuildProvider. La propiedad CodeCompilerType es null si el proveedor de generación no requiere un lenguaje del código concreto para generar y compilar código fuente.

Para establecer el valor de un objeto CompilerType dentro de la implementación de un proveedor de generación, utilice el método GetDefaultCompilerType o GetDefaultCompilerTypeForLanguage.

La propiedad CodeDomProviderType especifica la implementación de CodeDomProvider que se utiliza para generar y compilar el código fuente para un proveedor de generación. La propiedad CompilerParameters define los valores utilizados para compilar el código fuente en un ensamblado.

En el ejemplo de código siguiente se muestra la implementación de un proveedor de generación sencillo, que hereda de la clase base abstracta BuildProvider. El proveedor de generación reemplaza los miembros CodeCompilerType, GetGeneratedType y GenerateCode de la clase base.

using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Compilation;
using System.CodeDom.Compiler;
using System.CodeDom;
using System.Security;
using System.Security.Permissions;

// Define a simple build provider implementation.
[PermissionSet(SecurityAction.Demand, Unrestricted = true)]
public class SampleBuildProvider : BuildProvider
{
    // Define an internal member for the compiler type.
    protected CompilerType _compilerType = null;

    public SampleBuildProvider()
    {
        _compilerType = GetDefaultCompilerTypeForLanguage("C#");
    }

    // Return the internal CompilerType member 
    // defined in this implementation.
    public override CompilerType CodeCompilerType
    {
        get { return _compilerType; }
    }


    // Define the build provider implementation of the GenerateCode method.
    public override void GenerateCode(AssemblyBuilder assemBuilder)
    {
        // Generate a code compile unit, and add it to
        // the assembly builder.

        TextWriter tw = assemBuilder.CreateCodeFile(this);
        if (tw != null)
        {
            try
            {
                // Generate the code compile unit from the virtual path.
                CodeCompileUnit compileUnit = SampleClassGenerator.BuildCompileUnitFromPath(VirtualPath);

                // Generate the source for the code compile unit, 
                // and write it to a file specified by the assembly builder.
                CodeDomProvider provider = assemBuilder.CodeDomProvider;
                provider.GenerateCodeFromCompileUnit(compileUnit, tw, null);
            }
            finally
            {
                tw.Close();
            }
        }
    }

    public override System.Type GetGeneratedType(CompilerResults results)
    {
        string typeName = SampleClassGenerator.TypeName;

        return results.CompiledAssembly.GetType(typeName);
    }
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft