C# 同一类型的服务结构参与者能否使用同一dll的不同版本?

C# 同一类型的服务结构参与者能否使用同一dll的不同版本?,c#,dll,appdomain,azure-service-fabric,service-fabric-actor,C#,Dll,Appdomain,Azure Service Fabric,Service Fabric Actor,正在使用Assembly.Load加载的dll有一个长时间运行的方法,该方法返回大数据集,我正在考虑创建AppDomains以运行此dll的不同版本。但是,我没有使用AppDomains,因此我不确定跨AppDomain边界编组/序列化的复杂性和性能 因此,我想知道在探索AppDomains之前,是否可以通过利用服务结构中的微服务体系结构绕过AppDomains 谢谢 如果您使用微服务体系结构,您将在不同的过程中加载dll,这可能会更简单,但会依赖于ServiceFabric 对于AppDoma

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

因此,我想知道在探索AppDomains之前,是否可以通过利用服务结构中的微服务体系结构绕过AppDomains


谢谢

如果您使用微服务体系结构,您将在不同的过程中加载dll,这可能会更简单,但会依赖于ServiceFabric


对于AppDomains,复杂性基本上取决于您是否在不同的appdomain之间传递数据。如果不是这样的话,我相信AppDomain是这个场景的正确方法

您可以创建使用不同版本DLL的不同参与者服务。否则,在一个参与者中使用同一dll的不同版本会产生严重的副作用(bug、可维护性)。@alltej问题是这些dll是从数据库动态加载的。我希望这些参与者将作为不同的进程运行,因此将具有不同的AppDomain,但我错了。如果Assembly.Load方法具有用于重新加载程序集的重载方法或相应的卸载方法,则可以解决问题。