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