CompilerType Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.
public ref class CompilerType sealed
public sealed class CompilerType
type CompilerType = class
Public NotInheritable 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.
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);
}
}
Imports System.Collections
Imports System.IO
Imports System.Text
Imports System.Web
Imports System.Web.Compilation
Imports System.CodeDom.Compiler
Imports System.CodeDom
Imports System.Security
Imports System.Security.Permissions
<PermissionSet(SecurityAction.Demand, Unrestricted := true)> _
Public Class SampleBuildProvider
Inherits BuildProvider
Protected _compilerType As CompilerType = Nothing
Public Sub New()
_compilerType = GetDefaultCompilerType()
End Sub
' Return the internal CompilerType member
' defined in this implementation.
Public Overrides ReadOnly Property CodeCompilerType() As CompilerType
Get
CodeCompilerType = _compilerType
End Get
End Property
' Define a method that returns details for the
' code compiler for this build provider.
Public Function GetCompilerTypeDetails() As String
Dim details As StringBuilder = New StringBuilder("")
If Not _compilerType Is Nothing Then
' Format a string that contains the code compiler
' implementation, and various compiler details.
details.AppendFormat("CodeDomProvider type: {0}; ", _
_compilerType.CodeDomProviderType.ToString())
details.AppendFormat("Compiler debug build = {0}; ", _
_compilerType.CompilerParameters.IncludeDebugInformation.ToString())
details.AppendFormat("Compiler warning level = {0}; ", _
_compilerType.CompilerParameters.WarningLevel.ToString())
If Not _compilerType.CompilerParameters.CompilerOptions Is Nothing Then
details.AppendFormat("Compiler options: {0}; ", _
_compilerType.CompilerParameters.CompilerOptions.ToString())
End If
End If
Return details.ToString()
End Function
' Define the build provider implementation of the GenerateCode method.
Public Overrides Sub GenerateCode(ByVal assemBuilder As AssemblyBuilder)
' Generate a code compile unit, and add it to
' the assembly builder.
Dim tw As TextWriter = assemBuilder.CreateCodeFile(Me)
If Not tw Is Nothing Then
Try
' Generate the code compile unit from the virtual path.
Dim compileUnit As CodeCompileUnit = _
SampleClassGenerator.BuildCompileUnitFromPath(VirtualPath)
' Generate the source for the code compile unit,
' and write it to a file specified by the assembly builder.
Dim provider As CodeDomProvider = assemBuilder.CodeDomProvider
provider.CreateGenerator().GenerateCodeFromCompileUnit(compileUnit, tw, Nothing)
Finally
tw.Close()
End Try
End If
End Sub
Public Overrides Function GetGeneratedType(ByVal results As CompilerResults) As System.Type
Dim typeName As String = SampleClassGenerator.TypeName
Return results.CompiledAssembly.GetType(typeName)
End Function
End Class
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) |