(我对这个问题有点绝望,因为我还没有找到任何指向我想要的文章)。
无论如何:
有没有办法在多个 s 之间共享一个ISessionFactory
( ) ?SessionFactoryImpl
AppDomain
- 或者 -
是否可以从中产生ISession
sISessionFactory
并将新创建的序列化为ISession
不同的 s Appdomain
?
- 或者 -
ISessionFactory
在基于 Winforms 的应用程序中ISession
,关于启动时间和内存消耗,您的成功案例是什么?
长篇大论 (对于那些喜欢细节的人):
- 我的应用程序是基于 ERP Winforms 的,可以产生多个“子应用程序”(表单);
- 每个子应用都有自己的程序集,可以独立更新;
- 生成一个新的 AppDomain 可以很好地隔离
static
每个“子应用程序”的成员。当应用程序完成时,子程序 AppDomain 资源也可以被卸载。我们这样做了一段时间,但是由于 SessionFactory 成本高(在时间上并且主要在内存中),这种模型开始变得站不住脚(目前,我们使用线程和ThreadStatic
成员来保存每个子应用程序的特定信息); - 我们非常支持延迟加载,所以我们也不能放弃这个功能。
我已经尝试过的:
MarshalByRef
共享的类ISessionFactory
:我无法让它工作(不记得为什么),但是序列化ISessionFactory
无论如何都会导致内存重复(大量)。我对吗?MarshalByRef
生成ISession
并将其序列化到另一个的类AppDomain
:由于 ISession 在其父级上拥有它的属性ISessionFactory
,现在处于其他边界,它给我带来了一些很好的期望,告诉我一些属性没有定义。