gpt4 book ai didi

c# - 最佳实践 如何使用 .net CORE 隔离动态代码/程序集

转载 作者:太空狗 更新时间:2023-10-29 21:53:12 24 4
gpt4 key购买 nike

我使用 .NET 4.5 创建了一个可扩展的 Web 应用程序。在运行时执行来自第三方的认证代码。

为此,我使用应用域和进程间通信。

现在我看到我为此使用的很多技术在 .NET 核心中不再受支持

喜欢:

  • 应用域
  • 远程处理
  • BinarySerzializers

对于其中的大多数,都有明显的解决方案。但是移除 AppDomains 是一件困难的事情。

如果我理解正确,我应该使用流程。但是如果我的应用程序有大约 100 个扩展(多个客户)?这意味着我必须创建 100 个进程(微服务)或至少将一些进程分组到微服务中。

但我对其中任何一个都不太满意。一方面,我最终会得到数百个进程。如果我分组,我仍然可以在它们之间产生影响。

那么怎样选择才是正确的呢?

最佳答案

一个可能的解决方案可能是使用 AssemblyLoadContext 代替 AppDomains。

这不是 AppDomains 的直接替代品,也不是为您提供的隔离级别,但它可能足以满足您的需求 - 它允许您使用等效于 AppDomain.LoadFileAppDomain.ResolveEvent 为您提供程序集加载隔离。

目前没有关于此的任何实际文档,但在此处执行此操作存在问题:https://github.com/dotnet/coreclr/issues/5463

关于c# - 最佳实践 如何使用 .net CORE 隔离动态代码/程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38048549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com