Closed. This question needs to be more focused。它当前不接受答案。












想要改善这个问题吗?更新问题,使它仅关注editing this post的一个问题。

5年前关闭。



Improve this question




我正在一个.NET库项目中,该项目包含一堆接口(interface),这些接口(interface)可以由我正在创建的服务使用。服务的用户将提供库中接口(interface)的实现,然后将其注入(inject)到服务应用程序中。

我的图书馆依赖于第三方图书馆,我当然需要引用它。我的库中的接口(interface)之一在其方法签名中使用了来自第三方的类型。这意味着该特定接口(interface)的实现者还需要引用第三方库。我担心的是,这增加了摩擦,使用户无法进行真正应做的工作-实现该界面。

解决此问题的一种方法是包含来自第三方库构建的源文件,而不是将其引用为单独的程序集。我知道,这将来可能会使我更难将更新集成到第三方代码中,但是除此之外,是否有任何原因使我不应该将此选项视为我的选择?您何时包括第三方代码而不是引用它?

注意:所涉及的第三方库非常小(少于10个类,总计1500 SLOC),并且作为我的项目(Apache许可证2.0)在开源许可证下可以使用。

最佳答案

我非常不愿意将源代码包含在您自己的项目中。是的,您的用户需要添加另一个引用...,但这意味着他们知道引用的来源。也许他们会想在其他地方使用它-甚至他们会使用具有相同第3方库的另一个项目。您不希望最终获得相同类型的多个副本。

此外,将其保留为单独的库将使第三方库发生更改时更容易进行更新。

有一些项目明确为您提供了库的“单个源文件”版本,以使其易于嵌入到项目中。 (例如linqbridge确实如此)。这会有所改变-那时,我认为如果需要的话,将其包含进来是更合理的。但是对于“普通”项目,我只添加引用。

关于.net - 什么时候包含/复制第三方代码,而不是引用/链接它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2070413/

10-12 01:43