gpt4 book ai didi

c# - IEditableObject 和 IRevertibleChangeTracking 有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 04:24:43 25 4
gpt4 key购买 nike

IEditableObject 之间有什么区别?和 IRevertibleChangeTracking (都来自 System.ComponentModel 命名空间)?看起来第一个支持显式事务,而第二个更隐式——但最终结果是一样的。我应该如何在代码中实现它?目前我在 BeginEdit 什么都不做并调用RejectChangesAcceptChangesEndEditCancelEdit分别。我的问题是这也将接受在 BeginEdit 之前所做的更改。

这真的是 Microsoft 想要的,还是我试图实现两个互斥的接口(interface)?

最佳答案

这两个接口(interface)并不互斥。它们只是为了支持不同但有些相关的场景,这些场景也可以由相同的给定类来实现。这是一个简单的解释:

IEditableObject 接口(interface)

IEditableObject接口(interface)旨在支持对象需要在编辑时以某种特定方式管理其内部状态的场景。

因此,该接口(interface)包含明确标记编辑阶段何时开始、完成或中止的方法,以便可以采取适当的操作来修改这些阶段的对象状态。


IRevertibleChangeTracking 接口(interface)

IRevertibleChangeTracking接口(interface)旨在支持对象需要能够回滚到其先前状态的场景。

该接口(interface)具有标记对象的当前状态何时应永久化或应恢复到最后已知的永久状态的方法。

关于c# - IEditableObject 和 IRevertibleChangeTracking 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com