I am attempting to use the OnFlushDirty method of a Castle.ActiveRecord object in order to implement generic auditing of changes:
protected override bool OnFlushDirty(object id,
IDictionary previousState,
IDictionary currentState,
NHibernate.Type.IType[] types
)
On execution, OnFlushDirty is passed a Castle.ActiveRecord.Framework.DictionaryAdapter for each of the previousState and currentState parameters.
Unfortunately DictionaryAdapter开发者_JS百科 does not support the GetEnumerator() method, throwing a NotSupportedException.
- Should I be expecting a
DictionaryAdapterto be passed into OnFlushDirty in the first place?; and - Assuming I should, how can I enumerate through the Key/Value pairs within the
DictionaryAdapterin order to compare previous and current states for auditing?
The DictionaryAdapter includes a Key collection which can be enumerated normally with the Key then being applied to retrieve its Value.
Sample solution code:
foreach (var entry in currentState.Keys)
{
Console.WriteLine(currentState[entry]);
}
加载中,请稍侯......
精彩评论