Ich habe eine FullEnumerationSimpleSyncProvider
implementiert, die Konflikte nicht zu behandeln scheint.Sync Framework: Konflikte werden nicht in SimpleSyncProvider behandelt
Im Konstruktor ich die folgenden Eigenschaften festgelegt haben:
this.Configuration.CollisionConflictResolutionPolicy = CollisionConflictResolutionPolicy.ApplicationDefined;
this.Configuration.ConflictResolutionPolicy = ConflictResolutionPolicy.ApplicationDefined;
this.ItemConstraint += new EventHandler<SimpleSyncItemConstraintEventArgs>(OnItemConstraint);
this.ItemConflicting += new EventHandler<SimpleSyncItemConflictingEventArgs>(OnItemConflicting);
Meine Event-Handler für Zwänge und Konflikte:
void OnItemConstraint(object sender, SimpleSyncItemConstraintEventArgs e)
{
e.SetResolutionAction(ConstraintConflictResolutionAction.Merge);
}
void OnItemConflicting(object sender, SimpleSyncItemConflictingEventArgs e)
{
e.SetResolutionAction(ConflictResolutionAction.Merge);
}
Allerdings, wenn ich einen Konflikt in InsertItem berichten() der Einschränkung/Konfliktereignishandler werden nie aufgerufen.
public override void InsertItem(
object itemData,
IEnumerable<SyncId> changeUnitsToCreate,
RecoverableErrorReportingContext recoverableErrorReportingContext,
out ItemFieldDictionary keyAndUpdatedVersion,
out bool commitKnowledgeAfterThisItem) {
// ...snip...
// Check if it is already there --- name collision
if (itemAlreadyExists)
{
recoverableErrorReportingContext.RecordConstraintError(ConstructDictionary(item.ID));
keyAndUpdatedVersion = null;
commitKnowledgeAfterThisItem = false;
return;
}
// ...snip...
}
dachte ich, wenn RecordConstraintError
der Sync Framework den entsprechenden Event-Handler aufrufen würde Aufruf nach InsertItem
verlassen.
Jeder Einblick würde sehr geschätzt werden!
Haben Sie dieses Problem behoben? Ich kämpfe seit Tagen mit demselben Problem. – jacktric