ControlBuilderInterceptor, klasa
Klasa ControlBuilderInterceptor
umożliwia dostosowywanie lub kontrolowanie procesu kompilacji.
Składnia
internal class ControlBuilderInterceptor
Ostrzeżenie
Klasa jest wewnętrzna ControlBuilderInterceptor
i nie ma być używana bezpośrednio w kodzie.
Zgodnie z opisem w sekcji Uwagi można sprawdzić istnienie tego typu, aby określić, czy obsługa typu przechwytywania jest obecna. Firma Microsoft nie obsługuje żadnego innego użycia tej klasy w aplikacji produkcyjnej w żadnym wypadku.
Uwagi
W programach .NET Framework 2.0 i .NET Framework 3.5 aktualizacje z sierpnia 2020 r. dodały obsługę używania typu przechwytywania w celu dostosowania lub sterowania procesem kompilacji. Można określić, czy ta obsługa jest obecna, sprawdzając Type.GetType() istnienie ControlBuilderInterceptor
typu, jak pokazano w poniższym kodzie.
Type type = Type.GetType("System.Web.Compilation.ControlBuilderInterceptor, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
Jeśli wartość zwracana ma wartość inną niż null, obsługa przechwytywania jest obecna. Jeśli zwracana wartość to null
, lub jeśli zostanie zgłoszony wyjątek, aktualizacje z sierpnia 2020 r. nie zostały zainstalowane, a obsługa przechwytywania jest nieobecna.
Jeśli obsługa przechwytywania jest obecna, możesz napisać i zarejestrować typ przechwytywania, który będzie współdziałał z procesem kompilacji w dokładnie taki sam sposób, ControlBuilderInterceptor jak w nowszych wersjach programu .NET Framework. W programach .NET Framework 2.0 i .NET Framework 3.5 typ przechwytywania może być dowolną klasą spełniającą następujące wymagania:
- Ma publiczny konstruktor bez parametrów.
- Ma publiczne, niestatyczne metody o nazwie
PreControlBuilderInit
iOnProcessGeneratedCode
które mają te same sygnatury i semantyki co PreControlBuilderInit(ControlBuilder, TemplateParser, ControlBuilder, Type, String, String, IDictionary, IDictionary) metody i OnProcessGeneratedCode(ControlBuilder, CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod, IDictionary) , które istnieją w nowszych wersjach programu .NET Framework.
Zarejestruj typ przechwytywania przy użyciu aspnet:20ControlBuilderInterceptor
klucza w ustawieniach aplikacji ASP.NET (<appSettings>
). To ustawienie aplikacji musi być wymienione w pliku web.config komputera lub aplikacji. Określ typ przechwytywania przy użyciu nazwy typu kwalifikowanego przez zestaw. W poniższym przykładzie pokazano, jak zarejestrować typ przechwytywania o nazwie Fabrikam.Interceptor
.
<configuration>
...
<appSettings>
...
<add key="aspnet:20ControlBuilderInterceptor"
value="Fabrikam.Interceptor, Fabrikam, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2b3831f2f2b744f7" />
</appSettings>
</configuration>
Aby pobrać kwalifikowaną przez zestaw nazwę typu, użyj Type.AssemblyQualifiedName właściwości , jak pokazano w poniższym kodzie.
string assemblyQualifiedName = typeof(Fabrikam.Interceptor).AssemblyQualifiedName;
Gdy obsługa przechwytywania jest obecna, proces kompilacji wchodzi w interakcję z wymienionym typem w sposób opisany powyżej. Gdy obsługa przechwytywania jest nieobecna, ustawienie aplikacji jest ignorowane i nie ma żadnego efektu.
Wymagania
Przestrzeń nazw: System.Web.Compilation
Zestaw: System.Web (w System.Web.dll)
Wersje programu .NET Framework: 3.5, 2.0