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,或擲回例外狀況,則 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