Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс ControlBuilderInterceptor позволяет настраивать или контролировать процесс компиляции.
Синтаксис
internal class ControlBuilderInterceptor
Предупреждение
Класс ControlBuilderInterceptor является внутренним и не предназначен для использования непосредственно в коде.
Как описано в разделе "Примечания", можно проверить наличие этого типа, чтобы определить, присутствует ли поддержка типа перехватчика. Корпорация Майкрософт не поддерживает любое другое использование этого класса в рабочем приложении в любом случае.
Замечания
В .NET Framework 2.0 и .NET Framework 3.5 обновления августа 202 0 г. добавили поддержку использования типа перехватчика для настройки или управления процессом компиляции. Вы можете определить, присутствует ли эта поддержка с помощью 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