Я пытаюсь добавить реализацию IPostLoadEventListener в мою конфигурацию NHibernate, используя FluentNHibernate.Я могу сделать это, как показано здесь:
как добавить прослушиватель событий через свободный nhibernate?
Однако создание нового массива для замены старого полностью отбрасывает все существующиеслушатели событий.Я могу обойти это так:
return Fluently.Configure()
.Database(config)
.Mappings(m => m.AutoMappings.Add(mappings))
.ExposeConfiguration(cfg =>
{
cfg.EventListeners.PostLoadEventListeners =
new IPostLoadEventListener[] {
new UtcDateEventListener(),
new DefaultPostLoadEventListener() // <<< this one is the default
};
cfg.EventListeners.SaveOrUpdateEventListeners =
new ISaveOrUpdateEventListener[] {
new UtcDateEventListener(),
new DefaultSaveOrUpdateEventListener() // <<< this one is the default
};
})
.BuildConfiguration()
.BuildSessionFactory();
Но я знаю только о прослушивателях событий по умолчанию, шагая по коду, чтобы определить, что я перезаписываю.Я хотел бы добавить своего слушателя событий, не перезаписывая ни одного из существующих слушателей событий, но делать так, как я показал выше, мне кажется очень вонючим.Существующие прослушиватели событий представляются в виде массива (а не коллекции или списка, что более логично).Есть ли более чистый способ справиться с этим?