Compartir a través de


IsCacheEnabled (Método) (2003 System)

Actualización: noviembre 2007

Obtiene un valor que indica si el documento especificado tiene una caché de datos.

Espacio de nombres:  Microsoft.VisualStudio.Tools.Applications.Runtime
Ensamblado:  Microsoft.VisualStudio.Tools.Applications.Runtime (en Microsoft.VisualStudio.Tools.Applications.Runtime.dll)

Sintaxis

'Declaración
Public Shared Function IsCacheEnabled ( _
    documentPath As String _
) As Boolean
'Uso
Dim documentPath As String
Dim returnValue As Boolean

returnValue = ServerDocument.IsCacheEnabled(documentPath)
public static bool IsCacheEnabled(
    string documentPath
)

Parámetros

Valor devuelto

Tipo: System. . :: .Boolean

Es true si el documento especificado tiene caché de datos; de lo contrario, es false.

Excepciones

Excepción Condición
ArgumentNullException

El parámetro documentPath es null Nothing nullptr referencia null (Nothing en Visual Basic) o está vacío, o se compone únicamente de caracteres de espacio en blanco.

FileNotFoundException

El archivo de documentPath no existe.

Comentarios

Este método sólo indica si el documento tiene una caché de datos, no si la memoria caché de datos contiene datos realmente. Aunque el documento tenga una caché de datos vacía, este método devolverá true.

Ejemplos

En el ejemplo de código siguiente se crea un nuevo ServerDocument y, a continuación, se modifican los datos que se almacenan en memoria caché en la isla de datos. En el ejemplo se utiliza primero el método IsCacheEnabled para comprobar que el libro tiene una caché de datos. En este ejemplo se necesita una referencia al ensamblado Microsoft.VisualStudio.Tools.Applications.Runtime y una instrucción Imports (para Visual Basic) o using (para C#) para el espacio de nombres Microsoft.VisualStudio.Tools.Applications.Runtime al principio del archivo de código.

Private customerOrdersSet As DataSet

Private Sub LoadCachedData(ByVal fileName As String)
    If ServerDocument.IsCacheEnabled(fileName) Then
        Dim serverDocument1 As ServerDocument = Nothing
        Try
            serverDocument1 = New ServerDocument(fileName)
            customerOrdersSet = New DataSet()

            ' Identify the namespace and the class that  
            ' contains the cached data object.
            Dim hostItem1 As CachedDataHostItem = _
                serverDocument1.CachedData.HostItems( _
                "DataCachingSource.ThisWorkbook")

            ' Identify the name of the cached data object.
            Dim dataItem1 As CachedDataItem = _
                hostItem1.CachedData("customerOrdersCached")

            ' Read the cached data into the local DataSet.
            If Nothing <> dataItem1.Xml AndAlso _
                Nothing <> dataItem1.Schema Then

                Dim xmlReader As New System.IO.StringReader( _
                    dataItem1.Xml)
                Dim schemaReader As New System.IO.StringReader( _
                    dataItem1.Schema)
                customerOrdersSet.ReadXmlSchema(schemaReader)
                customerOrdersSet.ReadXml(xmlReader)

                ' Modify the data.
                Dim row As DataRow
                For Each row In customerOrdersSet.Tables(0).Rows
                    Dim orders As Integer = Fix(row("OrderQuantity"))
                    row("OrderQuantity") = orders * 2
                Next row

                ' Write the modified data back to the
                ' cached data in the worksheet.
                dataItem1.SerializeDataInstance(customerOrdersSet)
                serverDocument1.Save()
            End If
        Finally
            If Not serverDocument1 Is Nothing Then
                serverDocument1.Close()
            End If
        End Try
    Else
        MsgBox("The specified document does not have " + _
            "a data cache.")
    End If
End Sub
private DataSet customerOrdersSet;

private void LoadCachedData(string fileName)
{
    if (ServerDocument.IsCacheEnabled(fileName))
    {
        ServerDocument serverDocument1 = null;
        try
        {
            serverDocument1 = new ServerDocument(fileName);
            customerOrdersSet = new DataSet();

            // Identify the namespace and the class that contains 
            // the cached data object.
            CachedDataHostItem hostItem1 =
                serverDocument1.CachedData.HostItems[
                "DataCachingSource.ThisWorkbook"];

            // Identify the name of the cached data object.
            CachedDataItem dataItem1 = hostItem1.CachedData[
                "customerOrdersCached"];

            // Read the cached data into the local DataSet.
            if (null != dataItem1.Xml && null != dataItem1.Schema)
            {
                System.IO.StringReader xmlReader =
                    new System.IO.StringReader(dataItem1.Xml);
                System.IO.StringReader schemaReader =
                    new System.IO.StringReader(dataItem1.Schema);
                customerOrdersSet.ReadXmlSchema(schemaReader);
                customerOrdersSet.ReadXml(xmlReader);

                // Modify the data.
                foreach (DataRow row in
                    customerOrdersSet.Tables[0].Rows)
                {
                    int orders = (int)row["OrderQuantity"];
                    row["OrderQuantity"] = orders * 2;
                }

                // Write the modified data back to the
                // cached data in the worksheet.
                dataItem1.SerializeDataInstance(customerOrdersSet);
                serverDocument1.Save();
            }
        }
        finally
        {
            if (serverDocument1 != null)
                serverDocument1.Close();
        }
    }
    else
    {
        MessageBox.Show("The specified document does not have " +
            "a data cache.");
    }
}

Permisos

Vea también

Referencia

ServerDocument (Clase)

ServerDocument (Miembros)

Microsoft.VisualStudio.Tools.Applications.Runtime (Espacio de nombres)