Domanda

Qual è la differenza tra IEditableObject e IRevertibleChangeTracking (sia dal sistema .ComponentModel namespace)? Sembra come se il primi supporti transazione esplicita, mentre il secondo è più implicito - ma il risultato netto è lo stesso. Come devo fare per l'attuazione del presente nel codice? Al momento non faccio niente in BeginEdit e call RejectChanges e AcceptChanges in EndEdit e CancelEdit rispettivamente. Il mio problema è che questo sarà anche accettare le modifiche effettuate prima del BeginEdit.

E 'davvero questo che Microsoft ha voluto o sto cercando di implementare due interfacce si escludono a vicenda?

È stato utile?

Soluzione

Le due interfacce non sono reciprocamente esclusivi. Sono semplicemente destinato a sostenere diversi scenari ancora in qualche modo correlati , che potrebbe anche essere attuato dalla stessa classe data. Ecco una rapida spiegazione:

IEditableObject Interfaccia

Il IEditableObject interfaccia è progettata sostenere lo scenario in cui un oggetto deve gestire il suo stato interno in qualche modo particolare durante la fase di modifica .

Per questo motivo l'interfaccia include metodi che segnano in modo esplicito quando si avvia la fase di modifica, a termine o interrotta, in modo che le azioni appropriate possono essere prese per modificare lo stato dell'oggetto nelle fasi.


IRevertibleChangeTracking interfaccia

Il IRevertibleChangeTracking interfaccia è progettata per sostenere lo scenario in cui un esigenze degli oggetti da essere in grado di rollback al suo stato precedente .

L'interfaccia ha metodi che marchio quando lo stato corrente dell'oggetto dovrebbe essere reso permanente o dovrebbe essere ripristinato l'ultimo stato permanente noto.

Altri suggerimenti

IEditableObject è usato per il breve termine, le modifiche revertanble quali finestre di dialogo.

IRevertibleChangeTracking è utilizzato per lungo periodo, i cambiamenti reversibili, come ad esempio la modifica di un record e il monitoraggio o meno le esigenze discografiche per essere salvati.

Mi capita spesso di implementare entrambe le interfacce in modo da avere la capacità di supportare due livelli di undo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top