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