Clase ControlBuilderInterceptor
La clase ControlBuilderInterceptor
permite personalizar o controlar el proceso de compilación.
Sintaxis
internal class ControlBuilderInterceptor
Advertencia
La clase ControlBuilderInterceptor
es interna y no está pensada para usarse directamente en el código.
Como se describe en la sección Comentarios, se puede comprobar la existencia de este tipo para determinar si la compatibilidad con el tipo interceptor está presente. Microsoft no admite ningún otro uso de esta clase en una aplicación de producción en ninguna circunstancia.
Observaciones
En .NET Framework 2.0 y .NET Framework 3.5, el de agosto de 2020 se ha agregado compatibilidad con el uso de un tipo de interceptor para personalizar o controlar el proceso de compilación. Puede determinar si esta compatibilidad está presente mediante Type.GetType() para comprobar la existencia del tipo ControlBuilderInterceptor
, como se muestra en el código siguiente.
Type type = Type.GetType("System.Web.Compilation.ControlBuilderInterceptor, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
Si el valor devuelto no es NULL, la compatibilidad con el interceptor está presente. Si el valor devuelto es null
, o si se produce una excepción, las actualizaciones de agosto de 2020 no se han instalado y la compatibilidad con interceptor no está presente.
Si la compatibilidad con interceptores está presente, puede escribir y registrar un tipo de interceptor que interactuará con el proceso de compilación exactamente de la misma manera que ControlBuilderInterceptor hace en versiones posteriores de .NET Framework. En .NET Framework 2.0 y .NET Framework 3.5, el tipo de interceptor puede ser cualquier clase que cumpla los siguientes requisitos:
- Tiene un constructor público sin parámetros.
- Tiene métodos públicos y no estáticos denominados
PreControlBuilderInit
yOnProcessGeneratedCode
que tienen la misma firma y semántica que los métodos PreControlBuilderInit(ControlBuilder, TemplateParser, ControlBuilder, Type, String, String, IDictionary, IDictionary) y OnProcessGeneratedCode(ControlBuilder, CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod, IDictionary), que existen en versiones posteriores de .NET Framework.
Registre el tipo de interceptor mediante la clave aspnet:20ControlBuilderInterceptor
en ASP.NET configuración de la aplicación (<appSettings>
). Esta configuración de aplicación debe aparecer en el equipo o la aplicación web.config archivo. Especifique el tipo de interceptor mediante su nombre de tipo calificado para ensamblados. En el ejemplo siguiente se muestra cómo registrar un tipo de interceptor denominado Fabrikam.Interceptor
.
<configuration>
...
<appSettings>
...
<add key="aspnet:20ControlBuilderInterceptor"
value="Fabrikam.Interceptor, Fabrikam, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2b3831f2f2b744f7" />
</appSettings>
</configuration>
Para recuperar el nombre completo del ensamblado de un tipo, use la propiedad Type.AssemblyQualifiedName , como se muestra en el código siguiente.
string assemblyQualifiedName = typeof(Fabrikam.Interceptor).AssemblyQualifiedName;
Cuando la compatibilidad con el interceptor está presente, el proceso de compilación interactúa con el tipo enumerado de la manera descrita anteriormente. Cuando la compatibilidad con interceptores no está presente, se omite la configuración de la aplicación y no tiene ningún efecto.
Requisitos
Espacio de nombres: System.Web.Compilation
ensamblado de : System.Web (en System.Web.dll)
versiones de .NET Framework: 3.5, 2.0