正在运行.net应用,该应用引用了多个版本的“第三方” dll

时间:2019-08-08 13:06:30

标签: c# .net dll appdomain

我们正面临以下挑战。

我们有一个应用程序-称之为WebAPI。 WebAPI通过自己的一组dll与第三方数据库(简称为TDB)进行交互-可以将它们称为TDBLogic.dll,TDBServices.dll,TDBBusiness.dll。 这些dll的版本均为1.2,并且已作为WebAPI解决方案中的引用包含在内。 WebAPI解决方案具有与这些dll交互并执行必要操作的特定类。 TDB的交互非常复杂,我们有一些对象(我们称其为一个TDBRepo),它们继承自TDB dll的接口。

挑战在于,我们的环境中包含多个TDB数据库,并且每个数据库都在不同的版本上运行。如果我们希望WebAPI与其他TDB数据库进行交互,则必须调用正确版本的TDB dll。 此外,如上所述,与这些dll交互的TDBRepo必须根据其使用的TDB dll的版本而有所不同。

那是我们当前问题的简化版本,还有很多事情要做,但是我正在尝试找到以最简单的形式处理此问题的正确方法。

我最初以为只是创建我们的类的多个版本,这些版本调用TDB dll(包括每个版本的TDBRepo),然后引用相关的Dll。当然,问题在于每个版本的dll(TDBBusiness,TDBLogic和TDBServices)都具有相同的名称。

如果有人可以提出一种在.net c#解决方案中正确处理此问题的方法,我将不胜感激。

有没有办法创建引用这些dll特定版本的相关TDBRepo类?

版本切换必须在使用WebAPI时在运行时发生,而不仅仅是在LOAD时发生。

感谢您的帮助!

0 个答案:

没有答案