Перечислять через 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,

  1. Должен ли я ожидать DictionaryAdapter быть переданным в OnFlushDirty в первую очередь?; а также
  2. Предполагая, что я должен, как я могу перечислить через пары ключ / значение в DictionaryAdapter для того, чтобы сравнить предыдущие и текущие состояния для аудита?

1 ответ

Решение

DictionaryAdapter включает в себя коллекцию ключей, которая обычно может быть перечислена с ключом, который затем применяется для извлечения его значения.

Пример кода решения:

foreach (var entry in currentState.Keys)
{
    Console.WriteLine(currentState[entry]);
}
Другие вопросы по тегам