다음을 통해 공유


데이터 캐싱

업데이트: 2008년 7월

적용 대상

이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다.

프로젝트 형식

  • 문서 수준 프로젝트

Microsoft Office 버전

  • 2007 Microsoft Office system

  • Microsoft Office 2003

자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

Microsoft Office Word나 Microsoft Office Excel을 열지 않고도 오프라인으로 데이터에 액세스할 수 있도록 문서 수준 사용자 지정의 데이터 개체를 캐시할 수 있습니다. 개체를 캐시하려면 개체의 데이터 형식이 특정 요구 사항을 충족해야 합니다. String, DataSetDataTable을 비롯하여 .NET Framework의 많은 공통 데이터 형식은 이러한 요구 사항을 충족합니다.

데이터 캐시에 개체를 추가하는 방법은 다음 두 가지가 있습니다.

데이터 캐시에 개체를 추가한 후에는 Word 또는 Excel을 시작하지 않고도 캐시된 데이터에 액세스하고 이를 수정할 수 있습니다. 자세한 내용은 서버에 있는 문서의 데이터 액세스를 참조하십시오.

데이터 개체를 캐시하기 위한 요구 사항

만든 데이터 형식의 인스턴스를 캐시하려면 데이터 형식이 다음 요구 사항을 충족해야 합니다.

  • ThisDocument 또는 ThisWorkbook 클래스와 같은 호스트 항목의 읽기/쓰기 공용 필드 또는 속성이어야 합니다.

  • 매개 변수가 있는 속성 또는 인덱서가 아니어야 합니다.

또한 XmlSerializer 클래스를 사용하여 데이터 개체를 serialize할 수 있어야 합니다. 즉, 데이터 개체에 다음과 같은 특징이 있어야 합니다.

  • 공용 형식이어야 합니다.

  • 매개 변수가 없는 공용 생성자가 있어야 합니다.

  • 추가적인 보안 권한을 요구하는 실행 코드가 아니어야 합니다.

  • 읽기/쓰기 공용 속성만 노출해야 합니다. 기타 속성은 무시됩니다.

  • 다차원 배열을 노출하지 않아야 합니다. 중첩 배열은 허용됩니다.

  • 속성 및 필드에서 인터페이스를 반환하지 않아야 합니다.

  • 컬렉션인 경우 IDictionary를 구현하지 않아야 합니다.

캐시된 개체의 동작 제어

캐시된 개체의 동작을 좀더 세밀하게 제어하기 위해 캐시된 개체 형식에서 ICachedType 인터페이스를 구현할 수 있습니다. 예를 들어, 개체가 변경되었을 때 이를 사용자에게 알리는 방식을 제어하려는 경우 이 인터페이스를 구현합니다. ICachedType을 구현하는 방법을 보여 주는 코드 예제는 다음 샘플 응용 프로그램의 ControlCollection 클래스를 참조하십시오.

암호로 보호된 문서의 캐시된 데이터에 대한 변경 내용 유지

Word 2007 및 Excel 2007용 문서 수준 프로젝트에서 암호로 보호된 문서의 데이터 개체를 캐시하는 경우 캐시된 데이터의 변경 내용은 저장되지 않습니다. Visual Studio 2008 SP1(서비스 팩 1)부터는 두 개의 메서드를 재정의하여 캐시된 데이터에 대한 변경 내용을 저장할 수 있습니다. 이러한 메서드를 재정의하여 문서가 저장될 때 보호를 일시적으로 해제했다가 저장 작업이 완료된 후 보호를 다시 적용합니다.

자세한 내용은 방법: 암호로 보호된 문서의 데이터 캐시를 참조하십시오.

데이터 캐시에 Null 값을 추가할 때 데이터 손실 방지

데이터 캐시에 개체를 추가하는 경우 문서가 저장되고 닫히기 전에 캐시된 개체가 모두 null이 아닌 값으로 초기화되어야 합니다. 문서가 저장되고 닫힐 때 값이 null인 캐시된 데이터가 있으면 Visual Studio Tools for Office 런타임에서는 데이터 캐시에서 캐시된 모든 개체를 자동으로 제거합니다.

디자인 타임에 CachedAttribute 특성을 사용하여 데이터 캐시에 값이 null인 개체를 추가하는 경우 ServerDocument 클래스를 사용하여 문서가 열리기 전에 캐시된 데이터 개체를 초기화할 수 있습니다. 이 방법은 최종 사용자가 문서를 열기 전에 Word 또는 Excel이 설치되어 있지 않은 서버에서 캐시된 데이터를 초기화하려는 경우에 유용합니다. 자세한 내용은 서버에 있는 문서의 데이터 액세스를 참조하십시오.

캐시된 데이터가 문서에 저장되는 방식

데이터 개체를 문서에 캐시하면 Visual Studio Tools for Office 런타임에서는 개체를 문서에 저장된 XML 문자열로 serialize합니다. XML 문자열이 문서에 저장되는 방식은 솔루션과 함께 사용되는 Microsoft Office 버전에 따라 달라집니다.

  • Microsoft Office 2003용 사용자 지정의 경우 Visual Studio Tools for Office 런타임에서는 XML 문자열을 런타임 저장소 컨트롤에 저장합니다. 런타임 저장소 컨트롤은 문서에 포함된 ActiveX 컨트롤입니다. 자세한 내용은 런타임 저장소 컨트롤 개요를 참조하십시오.

  • 2007 Microsoft Office system용 사용자 지정의 경우 Visual Studio Tools for Office 런타임에서는 XML 문자열을 문서의 사용자 지정 XML 부분에 저장합니다. 자세한 내용은 사용자 지정 XML 부분 개요를 참조하십시오.

참고 항목

작업

방법: 오프라인이나 서버에서 사용할 데이터 캐싱

방법: Office 문서에서 프로그래밍 방식으로 데이터 소스 캐싱

방법: 프로그래밍 방식으로 데이터 소스 캐싱 중지

방법: 암호로 보호된 문서의 데이터 캐시

연습: 캐시된 데이터 집합을 사용하여 마스터-세부 관계 만들기

변경 기록

날짜

변경 내용

이유

2008년 7월

암호로 보호된 문서의 데이터를 캐시하는 방법에 대한 정보가 추가되었습니다.

SP1 기능 변경