2

変更の一般的な監査を実装するためにOnFlushDirty、オブジェクトのメソッドを使用しようとしています:Castle.ActiveRecord

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

実行時に、 OnFlushDirty はおよびパラメータCastle.ActiveRecord.Framework.DictionaryAdapterのそれぞれに対して渡されます。previousStatecurrentState

残念ながら、 をスローするメソッドDictionaryAdapterはサポートされていません。GetEnumerator()NotSupportedException

  1. DictionaryAdapterそもそも OnFlushDirty に a が渡されることを期待する必要がありますか?; と
  2. DictionaryAdapter監査のために以前と現在の状態を比較するために、キーと値のペアを列挙するにはどうすればよいでしょうか?
4

1 に答える 1

2

DictionaryAdapterは、キーを使用して通常どおりに列挙し、その値を取得するために適用できるキーコレクションが含まれています。

サンプルソリューションコード:

foreach (var entry in currentState.Keys)
{
    Console.WriteLine(currentState[entry]);
}
于 2011-07-07T15:44:28.443 に答える