CompilerType 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
가상 경로에서 소스 코드를 생성하고 컴파일하기 위해 ASP.NET 빌드 환경에서 사용하는 컴파일러 설정을 나타냅니다. 이 클래스는 상속될 수 없습니다.
public ref class CompilerType sealed
public sealed class CompilerType
type CompilerType = class
Public NotInheritable Class CompilerType
- 상속
-
CompilerType
예제
다음 코드 예제에서는 추상에서 상속 하는 간단한 빌드 공급자 구현 BuildProvider 기본 클래스입니다. 빌드 공급자를 재정의 합니다 CodeCompilerType, GetGeneratedType, 및 GenerateCode 기본 클래스의 멤버입니다.
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
설명
사용 하 여는 CodeCompilerType 의 속성을 BuildProvider 구현 설정을 검사 하 여 생성 하 고 해당 빌드 공급자에 대 한 가상 경로에서 소스 코드를 컴파일하는 데 사용 합니다.
ASP.NET 빌드 환경에서는 BuildProvider 프로젝트 내에서 사용자 지정 파일 형식용 소스 코드를 생성 하는 개체입니다. 클래스에서 파생 된 BuildProvider 소스 파일, 웹 페이지, 리소스 및 기타 사용자 지정 항목에 대 한 빌드 세부 정보를 제공 합니다. 빌드 공급자 특정 프로그래밍 언어에 필요한 경우 재정의 CodeCompilerType 속성 및 호출 합니다 GetDefaultCompilerType 반환 하는 방법을 CompilerType 지원 되는 프로그래밍 언어에 대 한 개체.
설정 하는 CompilerType 는 빌드 공급자 구현 사용 하 여 내에서 개체를 GetDefaultCompilerType 메서드 또는 GetDefaultCompilerTypeForLanguage 메서드.
합니다 CodeDomProviderType 속성을 지정 합니다 CodeDomProvider 구현을 생성 하 고 빌드 공급자에 대 한 소스 코드를 컴파일하는 데 사용 합니다. CompilerParameters 속성은 소스 코드를 어셈블리로 컴파일하는 데 사용 되는 설정을 정의 합니다.
속성
CodeDomProviderType |
구성된 Type 구현의 CodeDomProvider을 가져옵니다. |
CompilerParameters |
소스 코드를 어셈블리로 컴파일하는 데 사용되는 설정과 옵션을 가져옵니다. |
메서드
Equals(Object) |
지정된 개체가 현재 CompilerType 인스턴스와 코드 공급자 및 컴파일러 설정이 같은지 여부를 결정합니다. |
GetHashCode() |
이 인스턴스의 해시 코드를 반환합니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |