ControlBuilderInterceptor 클래스
ControlBuilderInterceptor
클래스를 사용하면 컴파일 프로세스를 사용자 지정하거나 제어할 수 있습니다.
통사론
internal class ControlBuilderInterceptor
경고
ControlBuilderInterceptor
클래스는 내부 클래스이며 코드에서 직접 사용할 수 없습니다.
설명 섹션에 설명된 대로 이 형식의 존재를 확인하여 인터셉터 형식 지원이 있는지 여부를 확인할 수 있습니다. Microsoft는 어떤 상황에서도 프로덕션 애플리케이션에서 이 클래스의 다른 사용을 지원하지 않습니다.
발언
.NET Framework 2.0 및 .NET Framework 3.5에서 2020년 8월 업데이트는 인터셉터 형식을 사용하여 컴파일 프로세스를 사용자 지정하거나 제어하기 위한 지원을 추가했습니다. 다음 코드에 설명된 대로 Type.GetType() 사용하여 ControlBuilderInterceptor
형식의 존재 여부를 확인하여 이 지원이 있는지 여부를 확인할 수 있습니다.
Type type = Type.GetType("System.Web.Compilation.ControlBuilderInterceptor, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
반환 값이 null이 아닌 경우 인터셉터 지원이 있습니다. 반환 값이 null
예외가 throw되면 2020년 8월 업데이트가 설치되지 않았으며 인터셉터 지원이 없습니다.
인터셉터 지원이 있는 경우 컴파일 프로세스와 상호 작용하는 인터셉터 형식을 작성하고 등록할 수 있습니다. ControlBuilderInterceptor 이후 버전의 .NET Framework에서 수행하는 것과 똑같은 방식으로 컴파일 프로세스와 상호 작용합니다. .NET Framework 2.0 및 .NET Framework 3.5에서 인터셉터 형식은 다음 요구 사항을 충족하는 모든 클래스일 수 있습니다.
- 매개 변수가 없는 공용 생성자가 있습니다.
-
PreControlBuilderInit(ControlBuilder, TemplateParser, ControlBuilder, Type, String, String, IDictionary, IDictionary) 및 OnProcessGeneratedCode(ControlBuilder, CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod, IDictionary) 메서드와 시그니처 및 의미 체계가 동일한
PreControlBuilderInit
및OnProcessGeneratedCode
명명된 비정적 공용 메서드가 있습니다. 이 메서드는 이후 버전의 .NET Framework에 있습니다.
ASP.NET 애플리케이션 설정(<appSettings>
)에서 aspnet:20ControlBuilderInterceptor
키를 사용하여 인터셉터 유형을 등록합니다. 이 애플리케이션 설정은 컴퓨터 또는 애플리케이션 web.config 파일에 나열되어야 합니다. 어셈블리 정규화된 형식 이름을 사용하여 인터셉터 형식을 지정합니다. 다음 예제에서는 이름이 Fabrikam.Interceptor
인터셉터 형식을 등록하는 방법을 보여 있습니다.
<configuration>
...
<appSettings>
...
<add key="aspnet:20ControlBuilderInterceptor"
value="Fabrikam.Interceptor, Fabrikam, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2b3831f2f2b744f7" />
</appSettings>
</configuration>
형식의 어셈블리 정규화된 이름을 검색하려면 다음 코드에 설명된 대로 Type.AssemblyQualifiedName 속성을 사용합니다.
string assemblyQualifiedName = typeof(Fabrikam.Interceptor).AssemblyQualifiedName;
인터셉터 지원이 있는 경우 컴파일 프로세스는 위에서 설명한 방식으로 나열된 형식과 상호 작용합니다. 인터셉터 지원이 없으면 애플리케이션 설정이 무시되고 효과가 없습니다.
요구 사항
네임스페이스: System.Web.Compilation
어셈블리: System.Web(System.Web.dll)
.NET Framework 버전: 3.5, 2.0
.NET