枚举通过传递给OnFlushDirty的DictionaryAdapter

时间:2011-07-07 15:28:53

标签: c# castle-activerecord castle-dictionaryadapter

我正在尝试使用OnFlushDirty对象的Castle.ActiveRecord方法来实现对更改的一般审核:

protected override bool OnFlushDirty(object id, 
                                     IDictionary previousState, 
                                     IDictionary currentState, 
                                     NHibernate.Type.IType[] types
                                    )

执行时,OnFlushDirty为Castle.ActiveRecord.Framework.DictionaryAdapterpreviousState个参数传递currentState

不幸的是,DictionaryAdapter不支持GetEnumerator()方法,抛出NotSupportedException

  1. 我是否应该首先将DictionaryAdapter传递给OnFlushDirty?和
  2. 假设我应该,我如何通过DictionaryAdapter中的键/值对进行枚举,以便比较审核的先前和当前状态?

1 个答案:

答案 0 :(得分:2)

DictionaryAdapter包含一个Key集合,可以正常枚举,然后应用Key来检索其值。

示例解决方案代码:

foreach (var entry in currentState.Keys)
{
    Console.WriteLine(currentState[entry]);
}