AnchorEnumerationSimpleSyncProvider.GetEnumerationAnchor 方法

在派生类中重写时,返回用于确定会话期间要同步的变更集合的枚举定位点。

命名空间: Microsoft.Synchronization.SimpleProviders
程序集: Microsoft.Synchronization.SimpleProviders(在 microsoft.synchronization.simpleproviders.dll 中)

语法

声明
Public MustOverride Function GetEnumerationAnchor As Byte()
用法
Dim instance As AnchorEnumerationSimpleSyncProvider
Dim returnValue As Byte()

returnValue = instance.GetEnumerationAnchor
public abstract byte[] GetEnumerationAnchor ()
public:
virtual array<unsigned char>^ GetEnumerationAnchor () abstract
public abstract byte[] GetEnumerationAnchor ()
public abstract function GetEnumerationAnchor () : byte[]

返回值

表示枚举定位点(如时间戳)的字节数组。

备注

定位点是一个时间点。时间既可以是逻辑时间(如时间戳或其他单调递增数字),也可以是时钟时间。在第一个同步会话期间,定位点值为 Null;因此将枚举存储区中的所有项。在后续的同步会话中,将调用 GetEnumerationAnchor 方法来提供新的定位点值。将对在前一个定位点值之后和新定位点值之前所做的变更进行同步。然后,Sync Framework 存储新定位点值,并且该值将用作下一个同步会话的前一个定位点值。

示例

下面的代码示例演示 GetEnumerationAnchor 方法的实现,该方法适用于在内存内存储区中存储项的示例应用程序。GetAnchor 方法是一个示例方法,它为存储区返回一个定位点,该定位点是上次对 Sync Framework 进行变更的时间戳。若要在完整应用程序的上下文中查看此代码,请参见"Sync101 using Simple Sync Provider" 应用程序(可从 Sync Framework SDK 和 Code Gallery 获得)。

备注

这是一个非常简单的定位点和变更跟踪实现。对于生产定位点实现,您必须考虑在同步会话期间用户对存储区进行变更时可能引起的乐观并发问题。

public override byte[] GetEnumerationAnchor()
{
    return _store.GetAnchor();
}
public byte[] GetAnchor()
{
    //Use the timestamp of the last change as the anchor.
    if (_trackedChanges.Count > 0)
    {
        return BitConverter.GetBytes(_trackedChanges.Keys[_trackedChanges.Count - 1]);
    }
    else
    {
        return null;
    }
}
Public Overrides Function GetEnumerationAnchor() As Byte()
    Return _store.GetAnchor()
End Function
Public Function GetAnchor() As Byte()
    'Use the timestamp of the last change as the anchor. 
    If _trackedChanges.Count > 0 Then
        Return BitConverter.GetBytes(_trackedChanges.Keys(_trackedChanges.Count - 1))
    Else
        Return Nothing
    End If
End Function

请参阅

参考

AnchorEnumerationSimpleSyncProvider 类
AnchorEnumerationSimpleSyncProvider 成员
Microsoft.Synchronization.SimpleProviders 命名空间