다음을 통해 공유


SimpleSyncProvider.GetMetadataStore 메서드

파생 클래스에서 재정의되면 복제본에 대한 MetadataStore 개체를 반환하기 위해 Sync Framework Runtime에서 호출됩니다.

네임스페이스: Microsoft.Synchronization.SimpleProviders
어셈블리: microsoft.synchronization.simpleproviders.dll의 Microsoft.Synchronization.SimpleProviders

구문

‘선언
Public MustOverride Function GetMetadataStore ( _
    <OutAttribute> ByRef replicaId As SyncId, _
    <OutAttribute> ByRef culture As CultureInfo _
) As MetadataStore
‘사용 방법
Dim instance As SimpleSyncProvider
Dim replicaId As SyncId
Dim culture As CultureInfo
Dim returnValue As MetadataStore

returnValue = instance.GetMetadataStore(replicaId, culture)
public abstract MetadataStore GetMetadataStore (
    out SyncId replicaId,
    out CultureInfo culture
)
public:
virtual MetadataStore^ GetMetadataStore (
    [OutAttribute] SyncId^% replicaId, 
    [OutAttribute] CultureInfo^% culture
) abstract
public abstract MetadataStore GetMetadataStore (
    /** @attribute OutAttribute() */ /** @ref */ SyncId replicaId, 
    /** @attribute OutAttribute() */ /** @ref */ CultureInfo culture
)
JScript does not support passing value-type arguments by reference.

매개 변수

  • replicaId
    MetadataStore 개체가 반환되는 복제본의 ID가 포함된 SyncId 개체입니다.
  • culture
    문자열 비교에 사용되는 culture를 나타내는 CultureInfo 개체입니다.

반환 값

지정된 복제본의 메타데이터 저장소를 나타내는 MetadataStore 개체입니다.

예제

각 복제본에는 메타데이터 저장소가 필요합니다. 단순 공급자의 경우에는 SqlMetadataStore 인스턴스가 필요합니다. 다음 코드 예제에서는 MyFullEnumerationSimpleSyncProvider의 생성자에 저장소 옵션을 지정합니다.

public MyFullEnumerationSimpleSyncProvider(string name, MySimpleDataStore store)
{
    _name = name;
    _store = store;

    // Create a file to store metadata for all items and a file to store 
    // the replica ID.
    _replicaMetadataFile = Environment.CurrentDirectory + "\\" + _name.ToString() + ".Metadata";
    _replicaIdFile = Environment.CurrentDirectory + "\\" + _name.ToString() + ".Replicaid";

    // Set ReplicaIdFormat to use a GUID as an ID, and ItemIdFormat to use a GUID plus
    // an 8-byte prefix.
    _idFormats = new SyncIdFormatGroup();
    _idFormats.ItemIdFormat.IsVariableLength = false;
    _idFormats.ItemIdFormat.Length = 24;
    _idFormats.ReplicaIdFormat.IsVariableLength = false;
    _idFormats.ReplicaIdFormat.Length = 16;

    this.ItemConstraint += new EventHandler<SimpleSyncItemConstraintEventArgs>(OnItemConstraint);
    this.ItemConflicting += new EventHandler<SimpleSyncItemConflictingEventArgs>(OnItemConflicting);
}
Public Sub New(ByVal name As String, ByVal store As MySimpleDataStore)
    _name = name
    _store = store

    ' Create a file to store metadata for all items and a file to store 
    ' the replica ID. 
    _replicaMetadataFile = (Environment.CurrentDirectory & "\") + _name.ToString() & ".Metadata"
    _replicaIdFile = (Environment.CurrentDirectory & "\") + _name.ToString() & ".Replicaid"

    ' Set ReplicaIdFormat to use a GUID as an ID, and ItemIdFormat to use a GUID plus 
    ' an 8-byte prefix. 
    _idFormats = New SyncIdFormatGroup()
    _idFormats.ItemIdFormat.IsVariableLength = False
    _idFormats.ItemIdFormat.Length = 24
    _idFormats.ReplicaIdFormat.IsVariableLength = False
    _idFormats.ReplicaIdFormat.Length = 16

    AddHandler Me.ItemConstraint, AddressOf HandleItemConstraint
    AddHandler Me.ItemConflicting, AddressOf HandleItemConflicting
End Sub

다음 코드 예제에서는 저장소를 만듭니다.

private void InitializeMetadataStore()
{
    SyncId id = ReplicaId;

    // Create or open the metadata store, initializing it with the ID formats 
    // that are used to reference items and replicas.
    if (!File.Exists(_replicaMetadataFile))
    {
        _metadataStore = SqlMetadataStore.CreateStore(_replicaMetadataFile);
    }
    else
    {
        _metadataStore = SqlMetadataStore.OpenStore(_replicaMetadataFile);
    }
}
Private Sub InitializeMetadataStore()
    Dim id As SyncId = ReplicaId

    ' Create or open the metadata store, initializing it with the ID formats 
    ' that are used to reference items and replicas. 
    If Not File.Exists(_replicaMetadataFile) Then
        _metadataStore = SqlMetadataStore.CreateStore(_replicaMetadataFile)
    Else
        _metadataStore = SqlMetadataStore.OpenStore(_replicaMetadataFile)
    End If
End Sub

다음 코드에서는 이 저장소를 공급자 속성으로 반환합니다.

public override MetadataStore GetMetadataStore(out SyncId replicaId, out System.Globalization.CultureInfo culture)
{
    InitializeMetadataStore();

    replicaId = ReplicaId;
    culture = CultureInfo.CurrentCulture;
    return _metadataStore;
}
Public Overrides Function GetMetadataStore(ByRef replicaId__1 As SyncId, ByRef culture As System.Globalization.CultureInfo) As MetadataStore
    InitializeMetadataStore()

    replicaId__1 = ReplicaId
    culture = CultureInfo.CurrentCulture
    Return _metadataStore
End Function

전체 응용 프로그램의 맥락에서 이 코드를 보려면 Sync Framework SDK 및 Code Gallery에서 사용할 수 있는 "Sync101 using Simple Sync Provider" 응용 프로그램을 참조하십시오.

참고 항목

참조

SimpleSyncProvider 클래스
SimpleSyncProvider 멤버
Microsoft.Synchronization.SimpleProviders 네임스페이스