为什么项目将Newtonsoft嵌入其命名空间?

时间:2017-04-18 12:52:24

标签: c# json.net ravendb

多年来我在一些项目中注意到了这种模式,最近一次是在RavenDB中。

在ILSpy中打开Raven.Abstractions.dll,我注意到ol“ProjectName.SomeScope.Newtonsoft”

enter image description here

为什么这样做?看看github中的源代码,我猜他们正在为Newtonsoft提供源代码并使用Foddy将Newtonsoft类型编织到Raven程序集中。

我只能猜测这是为了防止类型冲突:所以Raven.Abstractions.Dll可​​以有一个特定版本的Newtonsoft,而不会强迫你(作为消费者)也引用该版本。

还有其他想法吗?

1 个答案:

答案 0 :(得分:2)

当时的原因是它与使用不同且有时不兼容的json.net版本的其他项目产生了很多冲突。 拥有我们自己的版本意味着我们可以避免所有这些。