Перечислять через DictionaryAdapter, переданный OnFlushDirty
Я пытаюсь использовать OnFlushDirty
метод Castle.ActiveRecord
Объект для реализации общего аудита изменений:
protected override bool OnFlushDirty(object id,
IDictionary previousState,
IDictionary currentState,
NHibernate.Type.IType[] types
)
При выполнении OnFlushDirty передается Castle.ActiveRecord.Framework.DictionaryAdapter
для каждого из previousState
а также currentState
параметры.
к несчастью DictionaryAdapter
не поддерживает GetEnumerator()
метод, бросая NotSupportedException
,
- Должен ли я ожидать
DictionaryAdapter
быть переданным в OnFlushDirty в первую очередь?; а также - Предполагая, что я должен, как я могу перечислить через пары ключ / значение в
DictionaryAdapter
для того, чтобы сравнить предыдущие и текущие состояния для аудита?
1 ответ
Решение
DictionaryAdapter
включает в себя коллекцию ключей, которая обычно может быть перечислена с ключом, который затем применяется для извлечения его значения.
Пример кода решения:
foreach (var entry in currentState.Keys)
{
Console.WriteLine(currentState[entry]);
}