다음을 통해 공유


ControlBuilderInterceptor 클래스

ControlBuilderInterceptor 클래스를 사용하면 컴파일 프로세스를 사용자 지정하거나 또는 제어할 수 있습니다.

구문

internal class ControlBuilderInterceptor

Warning

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에서 인터셉터 형식은 다음 요구 사항을 충족하는 모든 클래스일 수 있습니다.

ASP.NET 애플리케이션 설정(aspnet:20ControlBuilderInterceptor)의 키를 사용하여 <appSettings> 인터셉터 형식을 등록합니다. 이 애플리케이션 설정은 컴퓨터 또는 애플리케이션 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