Share via


快取資料

更新: 2008 年 7 月

適用於

本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。

專案類型

  • 文件層級專案

Microsoft Office 版本

  • 2007 Microsoft Office system

  • Microsoft Office 2003

如需詳細資訊,請參閱依應用程式和專案類型提供的功能

您可以用文件層級自訂來快取資料物件,如此就可以在離線時,或是在不開啟 Microsoft Office Word 或 Microsoft Office Excel 的情況下存取資料。若要快取物件,該物件必須具有符合特定需求的資料型別。.NET Framework 中的許多通用資料型別都符合這些需求,包括 StringDataSetDataTable

有兩種方法可以將物件加入至資料快取:

將物件加入至資料快取後,您就可以存取並修改該快取資料,而不需啟動 Word 或 Excel。如需詳細資訊,請參閱存取伺服器文件中的資料

要快取之資料物件的要求

如果您想要快取所建立之資料型別執行個體,則這類資料型別必須符合下列需求:

  • 為主項目的讀寫公用 (Public) 欄位或屬性 (如 ThisDocument 或 ThisWorkbook 類別)。

  • 不是索引子或其他參數型屬性。

此外,資料物件必須透過 XmlSerializer 類別進行序列化,這表示它必須具有下列特性:

  • 是公用型別。

  • 具有無參數的公用建構函式。

  • 不執行要求其他安全性權限的程式碼。

  • 只公開可讀寫的公用屬性 (忽略其他屬性)。

  • 不公開多維式陣列 (接受巢狀陣列)。

  • 不從屬性和欄位傳回介面。

  • 不實作 IDictionary (如果是集合的話)。

控制快取物件的行為

若要進一步控制快取物件的行為,您可以在該快取物件的型別上實作 ICachedType 介面。例如,如果要控制在物件被變更後如何告知使用者,則可實作這個介面。如需示範如何實作 ICachedType 的程式碼範例,請參閱下列範例應用程式中的 ControlCollection 類別:

保存快取受密碼保護文件中資料的變更

在 Word 2007 和 Excel 2007 的文件層級專案中,如果您快取受密碼保護之文件中的資料物件,該快取資料的變更將不會儲存。從 Visual Studio 2008 Service Pack 1 (SP1) 開始,您可以藉由覆寫兩個方法來儲存快取資料的變更。請覆寫這些方法,以便在儲存文件時暫時移除保護,然後在儲存作業完成時重新套用保護。

如需詳細資訊,請參閱 HOW TO:快取受密碼保護文件中的資料

避免將 Null 值加入至資料快取時發生資料遺失

將物件加入至資料快取時,您必須先將所有快取物件初始化為非 null 值,才能儲存和關閉文件。當儲存和關閉文件時,如果有任何快取物件擁有 null 值,Visual Studio Tools for Office runtime 就會自動從該資料快取移除所有的快取物件。

如果在設計階使用 CachedAttribute 屬性 (Attribute) 將含有 null 值的物件加入至資料快取,您就可以在開啟文件之前使用 ServerDocument類別來初始化快取資料物件。如果您想要在使用者開啟文件之前初始化未安裝 Word 或 Excel 之伺服器上的快取資料,這個方法就很有用。如需詳細資訊,請參閱存取伺服器文件中的資料

如何將快取資料儲存在文件中

在文件中快取資料物件時,Visual Studio Tools for Office Runtime 會將物件序列化至儲存在文件中的 XML 字串。XML 字串儲存在文件中的方式是取決於方案所使用的 Microsoft Office 版本:

  • 在 Microsoft Office 2003 的自訂中,Visual Studio Tools for Office Runtime 會將 XML 字串儲存在 Runtime Storage Control 中。Runtime Storage Control 是內嵌在文件中的 ActiveX 控制項。如需詳細資訊,請參閱 Runtime Storage Control 概觀

  • 在 2007 Microsoft Office system 的自訂中,Visual Studio Tools for Office Runtime 會將 XML 字串儲存在文件的「自訂 XML 組件」(Custom XML Part) 中。如需詳細資訊,請參閱自訂 XML 組件概觀

請參閱

工作

HOW TO:快取資料供離線使用或於伺服器上使用

HOW TO:以程式設計方式快取 Office 文件的資料來源

HOW TO:以程式設計方式停止快取資料來源

HOW TO:快取受密碼保護文件中的資料

逐步解說:使用快取資料集來建立主從式關聯

變更記錄

日期

記錄

原因

2008 年 7 月

加入有關快取受密碼保護文件中資料的資訊。

SP1 功能變更。