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
documentPath
Tipo: System. . :: .StringRuta de acceso del documento que desea comprobar.
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
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.
Vea también
Referencia
Microsoft.VisualStudio.Tools.Applications.Runtime (Espacio de nombres)