Partilhar via


CachedDataItem.Xml A propriedade (sistema de 2007)

Obtém ou define a representação XML do objeto de dados em cache representadas pelo CachedDataItem.

Namespace:  Microsoft.VisualStudio.Tools.Applications
Assembly:  Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0 (em Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll)

Sintaxe

Public Property Xml As String

Dim instance As CachedDataItem
Dim value As String

value = instance.Xml

instance.Xml = value
public string Xml { get; set; }

Valor de propriedade

Tipo: System.String
A representação XML do objeto de dados em cache representadas pelo CachedDataItem.

Comentários

Para obter o valor de um objeto de dados em cache, use o Xml propriedade desserializar a representação XML dos dados em cache em uma nova instância do objeto de dados em cache. Em seguida, fazer alterações dessa cópia e serializar as alterações de volta para o cache de dados.

Em maioria dos casos, você pode usar o SerializeDataInstance método para serializar o objeto alterado em cache de dados. Se você quiser executar seu próprios serialização para alterações de dados em cache, você também pode escrever diretamente para o Xml propriedade. No entanto, se você estiver fazendo alterações para um DataSet, DataTable, ou um dataset tipado que será atualizado para um banco de dados usando um DataAdapter, especifique o formato DiffGram ao gravar as alterações nos dados armazenados em cache. Caso contrário, sistema autônomo alterações para o DataSet ou DataTable será adicionado ao banco de dados sistema autônomo novas linhas em vez de linhas alteradas. Para obter mais informações, consulte Acessando dados em documentos no servidor.

Exemplos

O exemplo de código a seguir usa o Xml propriedade para obter o valor de uma seqüência de caracteres que é armazenado em cache em uma planilha de uma pasta de trabalho do Excel. O exemplo exibe o valor em uma caixa de mensagem.

Este exemplo requer uma referência aos assemblies Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll e Microsoft.VisualStudio.Tools.Applications.tempo de execução.v9.0.dll e Imports (para Visual Basic) ou using (para translation from VPE for Csharp) instruções para Microsoft.VisualStudio.Tools.Applications e Microsoft.VisualStudio.Tools.Applications.Runtime espaços para nome na parte superior do seu arquivo de código. Este exemplo também assume que a pasta de trabalho especificada tem uma personalização com um Sheet1 classe na ExcelWorkbook1 namespace e uma seqüência de caracteres em cache na Sheet1 classe chamada CachedString.

PrivateSub ReadCachedStringValue(ByVal documentPath AsString)
    Dim runtimeVersion AsInteger = 0
    Dim serverDocument1 As ServerDocument = NothingTry
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
        If runtimeVersion <> 3 Then
            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.")
            ReturnEndIfIf ServerDocument.IsCacheEnabled(documentPath) Then
            serverDocument1 = New ServerDocument(documentPath)
            Dim hostItem1 As CachedDataHostItem = _
                serverDocument1.CachedData.HostItems("ExcelWorkbook1.Sheet1")
            Dim dataItem1 As CachedDataItem = hostItem1.CachedData("CachedString")

            If dataItem1 IsNotNothingAndAlso _
                Type.GetType(dataItem1.DataType).Equals(GetType(String)) ThenUsing stringReader AsNew System.IO.StringReader(dataItem1.Xml)
                    Dim serializer AsNew System.Xml.Serialization.XmlSerializer(GetType(String))
                    Dim cachedString AsString = serializer.Deserialize(stringReader)
                    MessageBox.Show("The value of CachedString is: " + cachedString)
                EndUsingEndIfElse
            MessageBox.Show("The specified document does not have cached data.")
        EndIfCatch ex As System.IO.FileNotFoundException
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
    Catch ex As UnknownCustomizationFileException
        System.Windows.Forms.MessageBox.Show("The specified document has a file " & _
            "extension that is not supported by Visual Studio Tools for Office.")
    FinallyIfNot (serverDocument1 IsNothing) Then
            serverDocument1.Close()
        EndIfEndTryEndSub
privatevoid ReadCachedStringValue(string documentPath)
{
    int runtimeVersion = 0;
    ServerDocument serverDocument1 = null;

    try
    {
        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.");
            return;
        }

        if (ServerDocument.IsCacheEnabled(documentPath))
        {
            serverDocument1 = new ServerDocument(documentPath);
            CachedDataHostItem hostItem1 = 
                serverDocument1.CachedData.HostItems["ExcelWorkbook1.Sheet1"];
            CachedDataItem dataItem1 = hostItem1.CachedData["CachedString"];

            if (dataItem1 != null && 
                Type.GetType(dataItem1.DataType) == typeof(string))
            {
                using (System.IO.StringReader stringReader =
                    new System.IO.StringReader(dataItem1.Xml))
                {
                    System.Xml.Serialization.XmlSerializer serializer =
                        new System.Xml.Serialization.XmlSerializer(typeof(string));
                    string cachedString = serializer.Deserialize(stringReader) asstring;
                    MessageBox.Show("The value of CachedString is: " + cachedString);
                }
            }
        }
        else
        {
            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.");
    }
    finally
    {
        if (serverDocument1 != null)
            serverDocument1.Close();
    }
}

Para obter um exemplo de código que demonstra como usar o Xml propriedade modificar e serializar as alterações em um cache DataSet, consulte Como: Alterar de dados em uma pasta de trabalho em um servidor em cache.

Permissões

Consulte também

Referência

CachedDataItem Classe

Membros CachedDataItem

Namespace Microsoft.VisualStudio.Tools.Applications