поставляя поддержка отката к конструкторам
Конструкторам, как редакторы, обычно требуется поддерживать операции отката, чтобы пользователи могли применять свои последние изменения изменение кодовую точку.
Большинство конструкторов, реализованные в Visual Studio поддерживают отката автоматически быть предоставленного средой.
Реализации конструктора, которые должны обеспечивать поддержку функции rollback:
Обеспечьте управление отката, реализовав абстрактный базовый класс UndoEngine
Предоставляет механизм сохраняемости и поддержка CodeDOM посредством реализации IDesignerSerializationService и IComponentChangeService классы.
Дополнительные сведения об использовании конструкторах записи см. Расширение поддержки времени разработки.
SDK для Visual Studio предоставляет инфраструктуру отката по умолчанию:
Rollback посредством предоставления реализаций управления OleUndoEngine и UndoUnit классы.
Передача сохраняемости и поддержка CodeDOM посредством значение по умолчанию CodeDomComponentSerializationService и IComponentChangeService реализации.
Получение поддержкой отката автоматически
Любой созданный в конструкторе Visual Studio автоматическая и имеет полную поддержку отката, если конструктор:
Использует a Control на основе класса для своего пользовательского интерфейса.
Использует стандартное CodeDOM-основанное code generation и система анализа для создания и сохранения кода.
Дополнительные сведения о работе с поддержкой CodeDOM Visual Studio см. в разделе Динамическое создание и компиляция исходного кода
Когда использовать явную поддержку отката конструктора
Конструкторы должны предоставить собственное отката, если элемент управления использует графический интерфейс, с именем адаптер представления, кроме одного, переданного by Control.
Примером этого может создать продукт с размещённый в интернете графическим интерфейсом проектирования вместо a основанный графического интерфейса.
В таких случаях одному необходимо зарегистрировать этот адаптер представления с Visual Studio использование ProvideViewAdapterAttributeи укажите точное управление отката.
Конструкторам, необходимо предоставить CodeDOM и поддержку сохраняемости, если они не используют Visual Studio модель создания кода в предоставленной System.CodeDom пространство имен.
Функции поддержки отката конструктора
Пакет SDK для среды предоставляют реализации по умолчанию интерфейсы, необходимые для обеспечения поддержки отката, которая может использоваться конструкторами не используется Control на основе классы для их пользовательских интерфейсов или стандартных CodeDOM и сохраняемости.
OleUndoEngine класс является производным от UndoEngine класс, используя реализацию интерфейса IOleUndoManager класс для управления операции отката.
Visual Studio предоставляет следующие функции откат конструктора:
Связанная функциональность отката через несколько конструкторов.
Единицы дочернего элемента внутри конструктора могут взаимодействовать с их путем реализации родительскиями IOleUndoUnit и IOleParentUndoUnit на UndoUnit.
Пакет SDK для среды предоставляет CodeDOM и поддержку сохраняемости, указав:
- CodeDomComponentSerializationService способ реализации IDesignerSerializationService
A IComponentChangeService предоставляется Visual Studio основное приложение разработки.
Использование функций пакет SDK для среды для предоставления поддержки отката
Получить поддержку отката объект, реализующий конструктор:
Создает экземпляр и инициализирует экземпляр OleUndoEngine класс с разрешенным IServiceProvider реализация.
This IServiceProvider класс должен предоставлять следующие службы:
-
Помощью конструкторов Visual Studio сериализация CodeDOM может выбрать для использования CodeDomComponentSerializationService предоставлено с SDK для Visual Studio как его реализация IDesignerSerializationService.
В этом случае IServiceProvider класс, реализованный OleUndoEngine конструктор должен возвратить объект в виде реализация IDesignerSerializationService класс.
-
Конструкторы с использованием значение по умолчанию DesignSurface предоставляется Visual Studio гарантии, что есть основное приложение разработки реализацию по умолчанию IComponentChangeService класс.
Конструкторы, a OleUndoEngine основанный механизм отката автоматически отслеживает изменений, если:
Изменения свойств выполняются через TypeDescriptor объект.
IComponentChangeService события создаются вручную, когда отменяемой подтверждении действия.
Изменение в конструкторе созданного в контексте a DesignerTransaction.
Конструктор выбирает для явного создания единицы отката с помощью то стандартная единица отката предоставленная реализацией UndoUnit реализация Студи-специфического или визуальную UndoUnit, которую наследует UndoUnit а также предоставляет реализацию обоих IOleUndoUnit и IOleParentUndoUnit.