다음을 통해 공유


컨텍스트 아키텍처 편집

업데이트: 2007년 11월

이 항목에서는 Windows Presentation Foundation(WPF) Designer for Visual Studio의 기능 공급자 및 기능 커넥터를 개발할 때 편집 컨텍스트의 역할에 대해 설명합니다. 기능 공급자 및 기능 커넥터에 대한 자세한 내용은 기능 공급자 및 기능 커넥터를 참조하십시오.

편집 컨텍스트: 디자이너의 현재 상태 캡처

비주얼 디자이너에서는 디자이너가 사용되는 동안 상당한 양의 상태 정보가 누적됩니다. 상태는 현재 선택된 개체나 마우스 단추를 클릭할 때의 동작 등 모든 종류의 디자인 타임 동작을 나타낼 수 있습니다. 상태는 중앙 위치에 저장되므로 필요한 경우 언제든지 검색할 수 있습니다. EditingContext 클래스는 디자이너 상태에 대한 중앙 리포지토리를 제공합니다.

Services

서비스는 잘 설명된 동작을 정의하는 단일 클래스 인스턴스입니다. 서비스는 디자이너에서 동작과 구현을 제공합니다. 컨텍스트에 만들어진 서비스는 컨텍스트가 삭제될 때까지 항상 나타나며 컨텍스트에서 사라지지 않습니다. 서비스는 일관된 인스턴스 값이 있으므로 항상 서비스를 캐시하는 것이 안전합니다. 서비스 구현 방법을 보여 주는 코드 예제를 보려면 방법: 사용자 지정 기능 커넥터 만들기를 참조하십시오.

컨텍스트 항목

컨텍스트 항목은 상태를 포함하는 변경할 수 없는 개체입니다. 또한 일부 컨텍스트 항목은 메서드를 정의하므로 포함하는 상태에 대해 작업을 수행할 수 있습니다.

컨텍스트 항목을 컨텍스트에 추가하거나 제거할 수 있습니다. 컨텍스트 항목은 임시 항목이지만 항상 값을 갖습니다. 특정 컨텍스트 항목이 컨텍스트에서 벗어나더라도 기본값을 가지므로 null을 반환하지 않습니다.

서비스와 달리 컨텍스트 항목의 값은 언제든지 변경될 수 있으므로 컨텍스트 항목은 캐시하지 않아야 합니다. 특정 형식의 컨텍스트 항목이 변경될 때 발생하는 변경 콜백을 구독할 수 있습니다.

컨텍스트 항목은 변경할 수 없지만, 기존 컨텍스트 항목을 새 컨텍스트 항목으로 바꾸는 방법을 대신 사용할 수 있습니다.

구독

서비스와 컨텍스트 항목에는 관리자가 있습니다. 서비스 관리자와 컨텍스트 항목 관리자는 기본적으로 데이터가 포함된 테이블입니다. 예를 들어 서비스 관리자를 사용하여 새 서비스를 게시합니다.

또한 서비스 관리자와 컨텍스트 항목 관리자는 특정 데이터 조각이 추가될 때 이를 코드에 알려 주는 구독 메커니즘을 제공합니다. 이 알림은 콜백 대리자로 구현됩니다. 구독은 특정 서비스 또는 컨텍스트 항목 형식이 추가되었을 때 호출되는 대리자입니다.

ComponentModel 디자이너 프레임워크와 비슷한 점

편집 컨텍스트의 개념은 System.ComponentModel.Design 네임스페이스의 IDesignerHostIServiceContainer 인터페이스와 유사합니다. 자세한 내용은 Windows Forms 디자이너 프레임워크와 WPF Designer 프레임워크 비교를 참조하십시오.

참고 항목

참조

Microsoft.Windows.Design.Services

EditingContext

ContextItem

기타 리소스

WPF Designer 확장성