Метод ISyncFilterDeserializer.Deserialize

При переопределении в производном классе этот метод создает объект ISyncFilter и инициализирует сериализованными данными.

Пространство имен: Microsoft.Synchronization
Сборка: Microsoft.Synchronization (в microsoft.synchronization.dll)

Синтаксис

'Декларация
Function Deserialize ( _
    data As Byte() _
) As ISyncFilter
'Применение
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

Параметры

  • data
    Сериализованные данные фильтра.

Возвращаемое значение

Вновь созданный объект ISyncFilter, инициализированный с помощью сериализованных данных, содержащихся в data.

Замечания

Этот метод выполняет десериализацию данных, созданных методом Serialize для связанного пользовательского фильтра.

Пример

В следующем примере объект BinaryReader используется для десериализации пользовательского фильтра из байтового массива.

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);
    }
}

См. также

Справочник

Интерфейс ISyncFilterDeserializer
Элементы ISyncFilterDeserializer
Пространство имен Microsoft.Synchronization