Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La classe ControlBuilderInterceptor permet au processus de compilation d’être personnalisé ou contrôlé.
Syntaxe
internal class ControlBuilderInterceptor
Avertissement
La classe ControlBuilderInterceptor est interne et n’est pas destinée à être utilisée directement dans votre code.
Comme décrit dans la section Remarques, l’existence de ce type peut être vérifiée pour déterminer si la prise en charge du type intercepteur est présente. Microsoft ne prend en charge aucune autre utilisation de cette classe dans une application de production en toute circonstance.
Remarques
Dans .NET Framework 2.0 et .NET Framework 3.5, les mises à jour août 2020 ont ajouté la prise en charge de l’utilisation d’un type d’intercepteur pour personnaliser ou contrôler le processus de compilation. Vous pouvez déterminer si cette prise en charge est présente à l’aide de Type.GetType() pour vérifier l’existence du type ControlBuilderInterceptor, comme illustré dans le code suivant.
Type type = Type.GetType("System.Web.Compilation.ControlBuilderInterceptor, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
Si la valeur de retour n’est pas null, la prise en charge de l’intercepteur est présente. Si la valeur de retour est nullou si une exception est levée, les mises à jour d’août 2020 n’ont pas été installées et la prise en charge de l’intercepteur est absente.
Si la prise en charge de l’intercepteur est présente, vous pouvez écrire et inscrire un type d’intercepteur qui interagit avec le processus de compilation de la même façon que celui que ControlBuilderInterceptor effectue sur les versions ultérieures de .NET Framework. Dans .NET Framework 2.0 et .NET Framework 3.5, le type d’intercepteur peut être n’importe quelle classe qui répond aux exigences suivantes :
- Possède un constructeur public sans paramètre.
- A des méthodes publiques, non statiques nommées
PreControlBuilderInitetOnProcessGeneratedCodequi ont la même signature et sémantique que les méthodes PreControlBuilderInit(ControlBuilder, TemplateParser, ControlBuilder, Type, String, String, IDictionary, IDictionary) et OnProcessGeneratedCode(ControlBuilder, CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod, IDictionary), qui existent dans les versions ultérieures de .NET Framework.
Inscrivez le type d’intercepteur à l’aide de la clé aspnet:20ControlBuilderInterceptor dans les paramètres de l’application ASP.NET (<appSettings>). Ce paramètre d’application doit être répertorié dans votre ordinateur ou fichier web.config application. Spécifiez le type d’intercepteur à l’aide de son nom de type qualifié d’assembly. L’exemple suivant montre comment inscrire un type d’intercepteur nommé Fabrikam.Interceptor.
<configuration>
...
<appSettings>
...
<add key="aspnet:20ControlBuilderInterceptor"
value="Fabrikam.Interceptor, Fabrikam, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2b3831f2f2b744f7" />
</appSettings>
</configuration>
Pour récupérer le nom qualifié d’assembly d’un type, utilisez la propriété Type.AssemblyQualifiedName, comme illustré dans le code suivant.
string assemblyQualifiedName = typeof(Fabrikam.Interceptor).AssemblyQualifiedName;
Lorsque la prise en charge de l’intercepteur est présente, le processus de compilation interagit avec le type répertorié de la manière décrite ci-dessus. Lorsque la prise en charge de l’intercepteur est absente, le paramètre d’application est ignoré et n’a aucun effet.
Exigences
espace de noms : System.Web.Compilation
assembly : System.Web (dans System.Web.dll)
versions du .NET Framework : 3.5, 2.0