是否可以限制在自己的解决方案中使用第三方库?

时间:2017-07-06 13:59:30

标签: c#

当你想将它们添加到你自己广泛使用的库中时,有没有办法限制第三方库(如NewtonSoft或AutoMapper)的使用?

E.g。假设我们有一个类库,其他几个项目用于某些任意事物,这个库又使用另一个第三方库。 这当然要求所有其他项目 - 只需要使用我们自己的项目来引用NewtonSoft或AutoMapper是否需要它。

有没有办法以某种方式构建这个(除了显而易见的部分,不使用第三方库)?

修改

假设我有一个Web项目A,需要在类库B中引用我的业务逻辑,类库使用AutoMapper,我想要一种不必在项目A中引用AutoMapper的方法。我相信这是不可能,但如果是,我想知道如何。

它可以解决问题,如果项目A和C使用相同库的不同版本会发生冲突,我知道这可以通过明确说明要使用的版本在webconfig中进行排序。但如果有一种更清洁的方式我想知道如何。

编辑#2

如果我将类库B中使用AutoMapper的区域标记为内部,该怎么办?在项目A中不需要引用AutoMapper,对吧?

这可行吗?

1 个答案:

答案 0 :(得分:2)

你可以拆分你的图书馆。一部分(A)使用Newtonsoft和AutoMapper,另一部分(B)不使用。

可能A会依赖B。

所有其他项目可以决定是否使用A或B.如果他们需要基于Newtonsoft和AutoMapper的功能,他们将选择A.