İngilizce dilinde oku

Aracılığıyla paylaş


CompilerType Sınıf

Tanım

ASP.NET derleme ortamında bir sanal yoldan kaynak kodu oluşturmak ve derlemek için kullanılan derleyici ayarlarını temsil eder. Bu sınıf devralınamaz.

C#
public sealed class CompilerType
Devralma
CompilerType

Örnekler

Aşağıdaki kod örneği, soyut BuildProvider temel sınıftan devralan basit bir derleme sağlayıcısı uygulamasını gösterir. Derleme sağlayıcısı, temel sınıfın CodeCompilerType, GetGeneratedTypeve GenerateCode üyelerini geçersiz kılar.

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()
    {
        // Set the compiler to use Visual Basic.
        _compilerType = GetDefaultCompilerTypeForLanguage("C#");
    }

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

    // Define a method that returns details for the 
    // code compiler for this build provider.
    public string GetCompilerTypeDetails()
    {
        StringBuilder details = new StringBuilder("");

        if (_compilerType != null)
        {
            // Format a string that contains the code compiler
            // implementation, and various compiler details.

            details.AppendFormat("CodeDomProvider type: {0}; \n",
                _compilerType.CodeDomProviderType.ToString());
            details.AppendFormat("Compiler debug build = {0}; \n",
                _compilerType.CompilerParameters.IncludeDebugInformation.ToString());
            details.AppendFormat("Compiler warning level = {0}; \n",
                _compilerType.CompilerParameters.WarningLevel.ToString());

            if (_compilerType.CompilerParameters.CompilerOptions != null)
            {
                details.AppendFormat("Compiler options: {0}; \n",
                    _compilerType.CompilerParameters.CompilerOptions.ToString());
            }
        }
        return details.ToString();
    }

    // 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.CreateGenerator().GenerateCodeFromCompileUnit(compileUnit, tw, null);
            }
            finally
            {
                tw.Close();
            }
        }
    }

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

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

Açıklamalar

CodeCompilerType Bu derleme sağlayıcısı için sanal bir BuildProvider yoldan kaynak kodu oluşturmak ve derlemek için kullanılan ayarları incelemek için uygulamanın özelliğini kullanın.

ASP.NET derleme ortamı, proje içindeki özel dosya türleri için kaynak kodu oluşturmak üzere nesneleri kullanır BuildProvider . öğesinden BuildProvider türetilen sınıflar kaynak dosyalar, Web sayfaları, kaynaklar ve diğer özel öğeler için derleme ayrıntıları sağlar. Derleme sağlayıcısı belirli bir programlama dili gerektirdiğinde CodeCompilerType özelliğini geçersiz kılar ve desteklenen programlama dili için bir CompilerType nesne döndürmek için yöntemini çağırırGetDefaultCompilerType.

Derleme sağlayıcısı uygulamasında nesnesini ayarlamak CompilerType için yöntemini veya GetDefaultCompilerTypeForLanguage yöntemini kullanınGetDefaultCompilerType.

özelliği, CodeDomProviderType bir derleme sağlayıcısı için kaynak kodu oluşturmak ve derlemek için kullanılan uygulamayı belirtir CodeDomProvider . özelliği, CompilerParameters kaynak kodu bir derlemeye derlemek için kullanılan ayarları tanımlar.

Özellikler

CodeDomProviderType

Yapılandırılan CodeDomProvider uygulama için bir Type alır.

CompilerParameters

Kaynak kodu bir derlemeye derlemek için kullanılan ayarları ve seçenekleri alır.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli örneğiyle CompilerTypeaynı kod sağlayıcısını ve derleyici ayarlarını temsil edip etmediğini belirler.

GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ürün Sürümler
.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, 4.8.1

Ayrıca bkz.