다음을 통해 공유


디자이너에 실행 취소 지원 제공

편집기 등의 디자이너는 일반적으로 코드 요소를 수정할 때 사용자가 최근 변경 내용을 되돌릴 수 있도록 실행 취소 작업을 지원해야 합니다.

Visual Studio에서 구현된 대부분의 디자이너는 환경에서 자동으로 "실행 취소" 지원을 제공합니다.

실행 취소 기능에 대한 지원을 제공해야 하는 디자이너 구현:

.NET Framework를 이용한 디자이너 작성 방법에 대해서는 디자인 타임 지원 확장에서 자세한 내용을 참조하세요.

Visual Studio SDK는 다음을 통해 기본 실행 취소 인프라를 제공합니다.

자동으로 실행 취소 지원 받기

Visual Studio에서 만든 모든 디자이너는 디자이너와 관련된 다음의 경우, 자동 및 전체 실행 취소 지원을 제공합니다.

  • 디자이너가 사용자 인터페이스에 Control 기반 클래스를 사용하는 경우.

  • 디자이너가 코드 생성 및 지속성을 위해 표준 CodeDOM 기반 코드 생성 및 구문 분석 시스템을 사용하는 경우.

    Visual Studio CodeDOM 지원 작업에 대한 자세한 내용은 동적 소스 코드 생성 및 컴파일을 참조하세요.

명시적 디자이너 실행 취소 지원을 사용하는 경우

디자이너는 Control에서 제공된 인터페이스가 아닌 뷰 어댑터라고 하는 그래픽 사용자 인터페이스를 사용하는 경우 자체 실행 취소 관리를 제공해야 합니다.

.NET Framework 기반 그래픽 인터페이스가 아닌 웹 기반 그래픽 디자인 인터페이스를 사용하여 제품을 만드는 경우가 일례가 될 수 있습니다.

이러한 경우에는 ProvideViewAdapterAttribute를 사용해 이 보기 어댑터를 Visual Studio에 등록하고 명시적 실행 취소 관리를 제공해야 할 수도 있습니다.

디자이너는 System.CodeDom 네임스페이스에 제공된 Visual Studio 코드 생성 모델을 사용하지 않는 경우 CodeDOM 및 지속성 지원을 제공해야 합니다.

디자이너의 실행 취소 지원 기능

환경 SDK는 사용자 인터페이스나 표준 CodeDOM 및 지속성 모델에 Control 기반 클래스를 사용하지 않은 디자이너가 사용할 수 있는 실행 취소 지원 기능에 필요한 인터페이스 기본 구현을 제공합니다.

OleUndoEngine 클래스는 실행 취소 직업 관리를 위해 IOleUndoManager 클래스 구현을 사용하는 .NET Framework UndoEngine 클래스에서 파생됩니다.

Visual Studio는 디자이너 실행 취소에 다음 기능을 제공합니다.

환경 SDK는 다음을 제공함으로써 CodeDOM 및 지속성 지원을 제공합니다.

환경 SDK 기능을 사용하여 실행 취소 지원 제공

실행 취소 지원을 얻으려면 디자이너를 구현하는 개체가 유효한 IServiceProvider 구현을 통해 OleUndoEngine 클래스를 인스턴스화하고 그 인스턴스를 초기화해야 합니다. 이 IServiceProvider 클래스는 다음 서비스를 제공해야 합니다.

다음의 경우 OleUndoEngine 기반 실행 취소 메커니즘을 구현하는 디자이너는 자동으로 변경 내용을 추적합니다.