奇怪的NHibernate例外:';未初始化的代理传递给save()';由工厂事件配置导致

奇怪的NHibernate例外:';未初始化的代理传递给save()';由工厂事件配置导致,nhibernate,events,listener,Nhibernate,Events,Listener,仅存在一个自定义DefaultSaveEventListener子类,其中不包含过度或扩展行为,就足以在刷新或提交事务时触发这种奇怪的异常,使用以下配置Xml: <event type="save-update"> <listener class="MyNamespace.MyCustomSaveEventListener, MyAssembly" /> </event> 如果我把上面的评论删掉,效果很好。但正如我所说,即使没有定义重写或扩展的事

仅存在一个自定义
DefaultSaveEventListener
子类,其中不包含过度或扩展行为,就足以在刷新或提交事务时触发这种奇怪的异常,使用以下配置Xml:

<event type="save-update">
    <listener class="MyNamespace.MyCustomSaveEventListener, MyAssembly" />
</event>

如果我把上面的评论删掉,效果很好。但正如我所说,即使没有定义重写或扩展的事件侦听器行为,也会发生这种情况。我知道这些
元素似乎不是默认NHibernate配置的附加元素,因此在该元素中配置的任何内容都将替换其他所有内容,因此通常从默认实现派生

异常发生在类
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener
中的
ReassociateFunInitializedProxy
方法中。即使只注册了此侦听器,并且从工厂配置中删除了所有其他侦听/扩展,也会发生这种情况


有人对此有什么想法吗?我需要使用这个监听器接口实现一些扩展行为。捕获异常并将其丢弃似乎不会造成任何损害,但返回值应该是什么?

Whoops源自
DefaultSaveEventListener
,而不是
DefaultSaveOrUpdateEventListener
。。。改变超类解决了这个问题——这应该会让我大开眼界