Compartilhar via


Método ISyncFilterDeserializer.Deserialize

Quando substituído em uma classe derivada, cria um objeto ISyncFilter e o inicializa usando dados serializados.

Namespace: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (em microsoft.synchronization.dll)

Sintaxe

'Declaração
Function Deserialize ( _
    data As Byte() _
) As ISyncFilter
'Uso
Dim instance As ISyncFilterDeserializer
Dim data As Byte()
Dim returnValue As ISyncFilter

returnValue = instance.Deserialize(data)
ISyncFilter Deserialize (
    byte[] data
)
ISyncFilter^ Deserialize (
    array<unsigned char>^ data
)
ISyncFilter Deserialize (
    byte[] data
)
function Deserialize (
    data : byte[]
) : ISyncFilter

Parâmetros

  • data
    Os dados de filtro serializados.

Valor de retorno

O objeto ISyncFilter recém-criado que é inicializado usando os dados serializados contidos em data.

Comentários

Este método desserializa os dados gerados pelo método Serialize para o filtro personalizado associado.

Exemplo

O exemplo a seguir usa um objeto BinaryReader para desserializar o filtro personalizado de uma matriz de bytes.

Public Function Deserialize(ByVal data As Byte()) As ISyncFilter Implements ISyncFilterDeserializer.Deserialize
    Dim memStream As New MemoryStream(data, 0, data.Length, False, True)
    Dim biReader As New BinaryReader(memStream, Encoding.Unicode)

    DeserializeFromBinaryReader(biReader, memStream)

    Return Me
End Function

Private Sub DeserializeFromBinaryReader(ByVal biReader As BinaryReader, ByVal memStream As MemoryStream)
    Dim hasFilterForgottenKnowledge As Boolean = biReader.ReadBoolean()

    _filter = biReader.ReadString()

    If hasFilterForgottenKnowledge Then
        Dim cbForgottenKnowledge As Integer = biReader.ReadInt32()
        Dim rawBuffer As Byte() = biReader.ReadBytes(cbForgottenKnowledge)
        _filterForgottenKnowledge = ForgottenKnowledge.Deserialize(ContactStore.ContactIdFormatGroup, rawBuffer)
    End If
End Sub
public ISyncFilter Deserialize(byte[] data)
{
    MemoryStream memStream = new MemoryStream(data, 0, data.Length, false, true);
    BinaryReader biReader = new BinaryReader(memStream, Encoding.Unicode);

    DeserializeFromBinaryReader(biReader, memStream);

    return this;
}

private void DeserializeFromBinaryReader(BinaryReader biReader, MemoryStream memStream)
{
    bool hasFilterForgottenKnowledge = biReader.ReadBoolean();

    _filter = biReader.ReadString();

    if (hasFilterForgottenKnowledge)
    {
        int cbForgottenKnowledge = biReader.ReadInt32();
        byte[] rawBuffer = biReader.ReadBytes(cbForgottenKnowledge);
        _filterForgottenKnowledge = ForgottenKnowledge.Deserialize(ContactStore.ContactIdFormatGroup,
            rawBuffer);
    }
}

Consulte também

Referência

Interface ISyncFilterDeserializer
Membros ISyncFilterDeserializer
Namespace Microsoft.Synchronization