快取資料
更新: 2008 年 7 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 專案類型
Microsoft Office 版本
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
您可以用文件層級自訂來快取資料物件,如此就可以在離線時,或是在不開啟 Microsoft Office Word 或 Microsoft Office Excel 的情況下存取資料。若要快取物件,該物件必須具有符合特定需求的資料型別。.NET Framework 中的許多通用資料型別都符合這些需求,包括 String、DataSet 和 DataTable。
有兩種方法可以將物件加入至資料快取:
若要在建置方案時將物件加入至資料快取,請將 CachedAttribute 屬性 (Attribute) 套用至物件宣告。如需詳細資訊,請參閱 HOW TO:快取資料供離線使用或於伺服器上使用。
若要以程式設計的方式,在執行階段將物件加入至資料快取,請使用主項目 (例如 ThisDocument 或 ThisWorkbook 類別) 的 StartCaching 方法。如需詳細資訊,請參閱 HOW TO:以程式設計方式快取 Office 文件的資料來源。
將物件加入至資料快取後,您就可以存取並修改該快取資料,而不需啟動 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:以程式設計方式快取 Office 文件的資料來源
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2008 年 7 月 |
加入有關快取受密碼保護文件中資料的資訊。 |
SP1 功能變更。 |