共用方式為


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
    序列化的篩選資料。

傳回值

使用 data 中包含之序列資料初始化的新建 ISyncFilter 物件。

備註

此方法會針對相關聯的自訂篩選,還原序列化 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 命名空間