Question

Quelle est la différence entre IEditableObject et IRevertibleChangeTracking (à la fois du système espace de noms .ComponentModel)? Il semble que les premiers supports transaction explicite tandis que le second est plus implicite - mais le résultat net est le même. Comment dois-je aller sur la mise en œuvre dans votre code? En ce moment, je ne fais rien dans BeginEdit et appel RejectChanges et AcceptChanges EndEdit et

Était-ce utile?

La solution

Les deux interfaces ne sont pas mutuellement exclusives. Ils sont simplement destiné à soutenir différents scénarios liés encore un peu , qui pourrait aussi bien être mis en œuvre par la même classe donnée. Voici une explication rapide:

IEditableObject Interface

L'interface IEditableObject est conçu pour soutenir le scénario où un besoin d'objets à gérer son état interne d'une manière particulière alors qu'il est en cours d'édition .

Pour cette raison, l'interface inclut des méthodes qui marque explicitement lors de la phase d'édition est démarré, achevé ou abandonné, de sorte que les mesures appropriées peuvent être prises pour modifier l'état de l'objet à ces étapes.


Interface IRevertibleChangeTracking

L'interface IRevertibleChangeTracking est conçu pour soutenir le scénario où un besoin d'objets pour pouvoir rollback à son état précédent .

L'interface possède des méthodes qui marque quand devrait être l'état actuel de l'objet permanent ou il convient de revenir au dernier état permanent connu.

Autres conseils

IEditableObject est utilisé pour le court terme, des modifications revertanble telles que les boîtes de dialogue.

IRevertibleChangeTracking est utilisé pour le long terme, des changements tels que la modification réversibles un enregistrement et le suivi si les besoins d'enregistrement à enregistrer.

Je mets en œuvre souvent les deux interfaces pour que j'ai la capacité de soutenir deux niveaux d'annulation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top