Класс ControlBuilderInterceptor
Класс ControlBuilderInterceptor
позволяет настраивать или контролировать процесс компиляции.
Синтаксис
internal class ControlBuilderInterceptor
Предупреждение
Класс ControlBuilderInterceptor
является внутренним и не предназначен для использования непосредственно в коде.
Как описано в разделе "Примечания", существование этого типа можно проверка, чтобы определить, присутствует ли поддержка типа перехватчика. Корпорация Майкрософт не поддерживает любое другое использование этого класса в рабочем приложении в любом случае.
Замечания
В платформа .NET Framework 2.0 и платформа .NET Framework 3.5 обновления за август 2020 г. добавили поддержку использования типа перехватчика для настройки или управления процессом компиляции. Вы можете определить, присутствует ли эта поддержка с помощью 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 г. не установлено, а поддержка перехватчика отсутствует.
Если поддержка перехватчика присутствует, можно написать и зарегистрировать тип перехватчика, который будет взаимодействовать с процессом компиляции точно так же, как ControlBuilderInterceptor и в более поздних версиях платформа .NET Framework. В платформа .NET Framework 2.0 и платформа .NET Framework 3.5 тип перехватчика может быть любым классом, отвечающим следующим требованиям:
- Имеет общедоступный конструктор без параметров.
- Имеет открытые, нестатические методы с именем
PreControlBuilderInit
иOnProcessGeneratedCode
имеют ту же сигнатуру и семантику, что PreControlBuilderInit(ControlBuilder, TemplateParser, ControlBuilder, Type, String, String, IDictionary, IDictionary) и OnProcessGeneratedCode(ControlBuilder, CodeCompileUnit, CodeTypeDeclaration, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod, IDictionary) методы, которые существуют в более поздних версиях платформа .NET Framework.
Зарегистрируйте тип перехватчика с помощью aspnet:20ControlBuilderInterceptor
ключа в параметрах приложения ASP.NET (<appSettings>
). Этот параметр приложения должен быть указан в файле конфигурации компьютера или приложения 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.Компиляция
Сборка: System.Web (в System.Web.dll)
платформа .NET Framework версии: 3.5, 2.0