BuildProvider.CodeCompilerType Proprietà

Definizione

Rappresenta il tipo di compilatore utilizzato da un provider di compilazione per la generazione di codice sorgente per un tipo di file personalizzato.

C#
public virtual System.Web.Compilation.CompilerType CodeCompilerType { get; }

Valore della proprietà

CompilerType

CompilerType in sola lettura, che rappresenta il generatore di codice, il compilatore di codice e le impostazioni del compilatore utilizzate per compilare codice sorgente per il percorso virtuale. La classe base restituisce null.

Esempio

L'esempio di codice seguente illustra un'implementazione semplice del provider di compilazione, ereditando dalla classe base astratta BuildProvider . Il provider di compilazione esegue l'override di CodeCompilerType, GetGeneratedTypee GenerateCode i membri della classe base.

C#
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);
    }
}

Commenti

Usare la CodeCompilerType proprietà per fornire le impostazioni per la compilazione del codice sorgente per un'implementazione di BuildProvider. La CodeCompilerType proprietà è null se il provider di compilazione non richiede un linguaggio di codice specifico per la generazione e la compilazione del codice sorgente.

Per impostare il valore per un oggetto all'interno di un'implementazione CompilerType del provider di compilazione, usare il GetDefaultCompilerType metodo o GetDefaultCompilerTypeForLanguage .

La CodeDomProviderType proprietà specifica l'implementazione usata per generare e compilare il CodeDomProvider codice sorgente per un provider di compilazione. La CompilerParameters proprietà definisce le impostazioni usate per compilare il codice sorgente in un assembly.

Si applica a

Prodotto Versioni
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

Vedi anche