2017-04-26 38 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是這種情況的正確方法。

相關問題