ControlBuilderInterceptor-klasse
Met ControlBuilderInterceptor
de klasse kan het compilatieproces worden aangepast of beheerd.
Syntaxis
internal class ControlBuilderInterceptor
Waarschuwing
De ControlBuilderInterceptor
klasse is intern en is niet bedoeld om rechtstreeks in uw code te worden gebruikt.
Zoals beschreven in de sectie Opmerkingen, kan het bestaan van dit type worden gecontroleerd om te bepalen of onderscheppingstypeondersteuning aanwezig is. Microsoft biedt geen ondersteuning voor ander gebruik van deze klasse in een productietoepassing onder omstandigheden.
Opmerkingen
In .NET Framework 2.0 en .NET Framework 3.5 hebben de updates van augustus 2020 ondersteuning toegevoegd voor het gebruik van een interceptortype om het compilatieproces aan te passen of te beheren. U kunt bepalen of deze ondersteuning aanwezig is door het Type.GetType() bestaan van het ControlBuilderInterceptor
type te controleren, zoals wordt weergegeven in de volgende code.
Type type = Type.GetType("System.Web.Compilation.ControlBuilderInterceptor, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
Als de retourwaarde niet null is, is er ondersteuning voor onderscheppingen aanwezig. Als de retourwaarde is null
, of als er een uitzondering wordt gegenereerd, zijn de updates van augustus 2020 niet geïnstalleerd en is onderscheppingsondersteuning afwezig.
Als onderscheppingsondersteuning aanwezig is, kunt u een interceptortype schrijven en registreren dat op exact dezelfde manier met het compilatieproces werkt als ControlBuilderInterceptor in latere versies van .NET Framework. In .NET Framework 2.0 en .NET Framework 3.5 kan het snijpunttype elke klasse zijn die voldoet aan de volgende vereisten:
- Heeft een openbare, parameterloze constructor.
- Heeft openbare, niet-statische methoden met de naam
PreControlBuilderInit
enOnProcessGeneratedCode
die dezelfde handtekening en semantiek hebben als de PreControlBuilderInit(ControlBuilder, TemplateParser, ControlBuilder, Type, String, String, IDictionary, IDictionary) en OnProcessGeneratedCode(ControlBuilder, CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod, IDictionary) methoden, die in latere versies van .NET Framework bestaan.
Registreer het type interceptor met behulp van de aspnet:20ControlBuilderInterceptor
sleutel in ASP.NET toepassingsinstellingen (<appSettings>
). Deze toepassingsinstelling moet worden vermeld in uw computer- of application web.config-bestand . Geef het snijpunttype op met behulp van de naam van het assembly-gekwalificeerde type. In het volgende voorbeeld ziet u hoe u een interceptortype met de naam Fabrikam.Interceptor
registreert.
<configuration>
...
<appSettings>
...
<add key="aspnet:20ControlBuilderInterceptor"
value="Fabrikam.Interceptor, Fabrikam, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2b3831f2f2b744f7" />
</appSettings>
</configuration>
Als u de assembly-gekwalificeerde naam van een type wilt ophalen, gebruikt u de Type.AssemblyQualifiedName eigenschap, zoals wordt weergegeven in de volgende code.
string assemblyQualifiedName = typeof(Fabrikam.Interceptor).AssemblyQualifiedName;
Wanneer onderscheppingsondersteuning aanwezig is, communiceert het compilatieproces met het vermelde type op de hierboven beschreven manier. Wanneer onderscheppingsondersteuning ontbreekt, wordt de toepassingsinstelling genegeerd en heeft dit geen effect.
Vereisten
Naamruimte: System.Web.Compilation
Assembly: System.Web (in System.Web.dll)
.NET Framework-versies: 3.5, 2.0
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor