ServerDocument.IsCacheEnabled Method (String)


Gets a value that indicates whether the specified document has a data cache.

Namespace:   Microsoft.VisualStudio.Tools.Applications
Assembly:  Microsoft.VisualStudio.Tools.Applications.ServerDocument (in Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

public static bool IsCacheEnabled(
	string documentPath


Type: System.String

The full path of the document that you want to check.

Return Value

Type: System.Boolean

true if the specified document has a data cache; otherwise, false.

Exception Condition

The documentPath parameter is null or empty or consists entirely of white space characters.


The file specified by documentPath does not exist.


The file specified by documentPath has a customization that was not created with the Visual Studio 2010 Tools for Office Runtime or the Visual Studio Tools for the Microsoft Office system (version 3.0 Runtime).

This method indicates only whether the document has a data cache, not whether the data cache actually contains data. If the document has a data cache that contains no data in it, this method still returns true.

The following code example creates a new ServerDocument, and then uses the CachedData property to display the contents of the data cache. The example first uses the IsCacheEnabled method to verify that the workbook has a data cache.

This example requires:

  • A console application project or some other non-Office project.

  • References to the following assemblies:

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll and Microsoft.VisualStudio.Tools.Applications.Runtime.dll (if the project targets the .NET Framework 4 or the .NET Framework 4.5).


    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll and Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (if the project targets the .NET Framework 3.5).

  • Imports (for Visual Basic) or using (for C#) statements for Microsoft.VisualStudio.Tools.Applications and Microsoft.VisualStudio.Tools.Applications.Runtime namespaces at the top of your code file.

private void DisplayDataCacheContents(string documentPath)
    int runtimeVersion = 0;
    ServerDocument serverDocument1 = null;

        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);

        if (runtimeVersion != 3)
            MessageBox.Show("This document does not have a Visual Studio Tools for " +
                "Office customization, or it has a customization that was created with " +
                "a version of the runtime that is incompatible with this version of the " +
                "ServerDocument class.");

        if (ServerDocument.IsCacheEnabled(documentPath))
            serverDocument1 = new ServerDocument(documentPath);
            System.Text.StringBuilder stringBuilder1 =
                new System.Text.StringBuilder();

            // Display all of the cached data items 
            // in the document.
            foreach (CachedDataHostItem hostItem1 in
                stringBuilder1.Append("\nNamespace and class: ");
                stringBuilder1.Append(hostItem1.Id + "\n");
                foreach (CachedDataItem dataItem1 in
                    stringBuilder1.Append("     Data item: ");
                    stringBuilder1.Append(dataItem1.Id + "\n");
            MessageBox.Show("The specified document does not have cached data.");
    catch (System.IO.FileNotFoundException)
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
    catch (UnknownCustomizationFileException)
        System.Windows.Forms.MessageBox.Show("The specified document has a file " +
            "extension that is not supported by Visual Studio Tools for Office.");
        if (serverDocument1 != null)
Return to top