在ASP.NET Core中加载Dll的多个实例?

时间:2017-04-18 15:13:36

标签: c# asp.net asp.net-core

我们有一个内部使用的软件已被转换为Dll。它是用C ++编写的。希望在多个平台(Mac / Linux / Windows)上作为本地网络上的服务运行。这个Dll有3个版本:一个用于Mac,一个用于Linux,一个用于Windows。我编写了一个基本的ASP.NET核心Web API,它通过P / Invoke和一个RESTful接口(我的第一个)暴露了Dll的底层功能,我也正在编写​​一个WPF客户端来配合这个新的Web API服务。我遇到的问题是编写的Dll正在大量使用全局数据(数组,变量等)。因此,如果两个或多个客户端使用Web API,它们将与Dll的全局状态数据发生冲突。我需要的是每个客户端以某种方式加载它自己的Dll实例的方法。

在周末狩猎之后,我发现这似乎是一个非常常见的问题,标准的“修复”是动态地将Dll文件的副本放入新的文件路径并在运行时从那里加载,例如:Loading multiple instance of DLL (C#/.NET)除了从文件系统动态复制/加载之外,是否有人知道在ASP.NET Core中获取Dll的多个“实例”的更好方法,或者这仍然是唯一合理的这样做的方法?如果这仍然是唯一的方法,这种黑客攻击也适用于Mac和Linux环境吗?

0 个答案:

没有答案