다음을 통해 공유


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

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