【发布时间】:2017-09-24 05:58:32
【问题描述】:
使用 Assembly.Load 加载的 dll 有一个返回大型数据集的长时间运行方法,我正在考虑创建 AppDomain 来运行此 dll 的不同版本。但是,我没有使用过 AppDomain,因此我不确定跨 AppDomain 边界的编组/序列化的复杂性和性能。
因此,在探索 AppDomain 之前,我想知道是否可以通过利用 Service Fabric 中的微服务架构来绕过 AppDomain。
谢谢!
【问题讨论】:
-
您可以创建使用不同版本 DLL 的不同参与者服务。否则,在单个参与者中使用同一 dll 的不同版本会产生严重的副作用(错误、可维护性)。
-
@alltej 问题是这些 dll 是从数据库动态加载的。我希望这些参与者将作为不同的进程运行,因此会有不同的 AppDomain,但我错了。如果 Assembly.Load 方法有重载程序集的重载方法或对应的 Unload 方法,就可以解决问题。
标签: c# dll appdomain azure-service-fabric service-fabric-actor