Поделиться через


Метод ISyncFilter.Serialize

При переопределении в производном классе сериализует фильтр в массив байтов.

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

Синтаксис

'Декларация
Function Serialize As Byte()
'Применение
Dim instance As ISyncFilter
Dim returnValue As Byte()

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

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

Данные фильтра, сериализованные в массив байтов.

Замечания

Если нет необходимости в сериализации фильтра, то данный метод может вызывать исключение NotImplementedException.

Пример

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

Public Function Serialize() As Byte() Implements ISyncFilter.Serialize
    Dim memStream As New MemoryStream()
    Dim biWriter As New BinaryWriter(memStream, Encoding.Unicode)

    SerializeToBinaryWriter(biWriter)

    Return memStream.GetBuffer()
End Function

Private Sub SerializeToBinaryWriter(ByVal biWriter As BinaryWriter)
    Dim hasFilterForgottenKnowledge As Boolean = (_filterForgottenKnowledge IsNot Nothing)

    biWriter.Write(hasFilterForgottenKnowledge)

    biWriter.Write(_filter)

    If _filterForgottenKnowledge IsNot Nothing Then
        Dim serializedForgottenKnowledge As Byte() = _filterForgottenKnowledge.Serialize()
        biWriter.Write(serializedForgottenKnowledge.Length)
        biWriter.Write(serializedForgottenKnowledge)
    End If
End Sub
public byte[] Serialize()
{
    MemoryStream memStream = new MemoryStream();
    BinaryWriter biWriter = new BinaryWriter(memStream, Encoding.Unicode);

    SerializeToBinaryWriter(biWriter);

    return memStream.GetBuffer();
}

private void SerializeToBinaryWriter(BinaryWriter biWriter)
{
    bool hasFilterForgottenKnowledge = (null != _filterForgottenKnowledge);

    biWriter.Write(hasFilterForgottenKnowledge);

    biWriter.Write(_filter);

    if (null != _filterForgottenKnowledge)
    {
        byte[] serializedForgottenKnowledge = _filterForgottenKnowledge.Serialize();
        biWriter.Write(serializedForgottenKnowledge.Length);
        biWriter.Write(serializedForgottenKnowledge);
    }
}

См. также

Справочник

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