Componentes do Sync Framework Metadata Storage Service
O Metadata Storage Service fornece suporte para armazenar e manipular metadados de sincronização.
API do Metadata Storage Service
A API do Metadata Storage Service consiste nos elementos a seguir:
Usando o Metadata Storage Service
O Metadata Storage Service é um conjunto de interfaces que podem ser usadas por gravadores do serviço de armazenamento para implementar um conjunto personalizado de classes de modo a armazenar metadados em qualquer tipo de repositório de dados. O Metadata Storage Service também fornece uma implementação da interface que usa um banco de dados leve para armazenar metadados da sincronização em um único arquivo de banco de dados em um sistema de arquivos.
Inicializando os metadados
A interface principal para todos os repositórios de metadados é ISyncMetadataStore. Essa interface contém métodos para inicializar e obter metadados de réplicas no repositório de metadados, bem como para iniciar e interromper transações no banco de dados. As interfaces que herdam dessa interface, como ISqlSyncMetadataStore, podem fornecer métodos para criar e abrir repositórios de metadados.
ISyncMetadataStore::InitializeReplicaMetadata inicializa os metadados da réplica no repositório de metadados. O parâmetro CUSTOM_FIELD_DEFINITION para este método permite a criação de um conjunto de campos personalizados. Esses campos podem ser usados para armazenar metadados adicionais para itens no repositório de metadados. O parâmetro CUSTOM_FIELDS_INDEX permite que conjuntos de campos sejam definidos como índices. Esses índices podem ser usados para localizar itens, de forma eficiente, no repositório de metadados.
Encapsulando metadados para réplicas
A interface IReplicaMetadata encapsula todos os metadados de uma réplica específica. É possível acessar os metadados da réplica usando métodos como IReplicaMetadata::GetKnowledge e IReplicaMetadata::GetReplicaId.
Vários métodos dessa interface ajudam a implementar os métodos do provedor de sincronização, como os seguintes:
IReplicaMetadata::GetChangeBatch. Este método pode executar a maior parte do trabalho para o método IKnowledgeSyncProvider::GetChangeBatch.
IReplicaMetadata::GetItemBatchVersions. Este método pode ser chamado a partir do método IKnowledgeSyncProvider::ProcessChangeBatch para localizar versões locais de itens de lote de alterações. O aplicador de alterações necessita dessas versões locais.
IReplicaMetadata também contém o serviço de detecção de exclusão. Um provedor pode usar métodos como IReplicaMetadata::GetUnreportedItems para detectar quais itens foram excluídos do repositório de itens e devem ser marcados como excluídos no repositório de metadados.
Encapsulando metadados para itens
É possível localizar metadados de itens no repositório de metadados usando os métodos IReplicaMetadata para procurar por ID de item ou campos indexados como IReplicaMetadata::FindItemMetadataByGlobalId ou IReplicaMetadata::FindItemMetadataByIndexedFields. A classe Interface IItemMetadata encapsula todos os metadados para um item específico. É possível acessar esses metadados usando métodos como IItemMetadata::GetChangeVersion, IItemMetadata::GetCreationVersion, IItemMetadata::GetGlobalId e IItemMetadata::GetIsDeleted. Essa classe também contém vários métodos que podem ser usados para acessar qualquer campo personalizado que foi definido quando os metadados da réplica foram inicializados.
Códigos de erro
O Metadata Storage Service usa um conjunto de erros personalizados para relatar problemas. Para obter mais informações, consulte Códigos de erro do armazenamento de metadados.
Consulte também
Referência
Microsoft.Synchronization.MetadataStorage