2017-04-26 33 views
1

使用Assembly.Load加载的DLL有一个长时间运行的方法返回大数据集,我正在考虑创建AppDomains以运行此dll的不同版本。但是,我没有使用AppDomain,所以我不确定跨AppDomain边界的编组/序列化的复杂性和性能。相同类型的服务Fabric actor可以使用不同版本的相同dll吗?

因此,我在使用AppDomains进行探索之前,是否可以利用服务结构中的微服务体系结构来绕过AppDomains。

谢谢!

+0

您可以创建使用不同版本的DLL的不同的actor服务。否则,你将会在一个actor中使用不同版本的相同dll,产生严重的副作用(bug,可维护性)。 – alltej

+0

@alltej问题是这些DLL是从数据库动态加载的。我希望这些演员能够以不同的流程运行,因此会有不同的AppDomain,但我错了。如果Assembly.Load方法具有用于重装程序集的重载方法或相应的Unload方法,则可以解决该问题。 –

回答

1

如果你使用微服务体系结构,你几乎可以在不同的进程中加载​​DLL,这可能会更简单,但会依赖于ServiceFabric。

随着AppDomains的复杂性基本上是如果你传递数据在不同的AppDomain周围。如果不是这种情况,我相信AppDomain是这种情况的正确方法。

相关问题