C# 为什么项目将Newtonsoft嵌入其名称空间?

C# 为什么项目将Newtonsoft嵌入其名称空间?,c#,json.net,ravendb,C#,Json.net,Ravendb,多年来,我在一些项目中注意到了这种模式,最近一次是在RavenDB 在ILSpy中打开Raven.Abstractions.dll时,我注意到ol“ProjectName.SomeScope.Newtonsoft” 为什么要这样做??查看github中的源代码,我猜他们正在为Newtonsoft引入源代码,并使用Foddy将Newtonsoft类型编织到Raven程序集中 我只能猜测这样做是为了防止类型冲突:因此Raven.Abstractions.Dll可以有一个特定版本的Newtonsof

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

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

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

我只能猜测这样做是为了防止类型冲突:因此Raven.Abstractions.Dll可以有一个特定版本的Newtonsoft,而不会强制要求您(作为消费者)也引用该版本


还有其他想法吗?

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

R您使用任何转换器进行转换?他们这样做是为了让您不必包含对Newtonsoft的其他依赖。就这样。他们什么也没织。只是把组件包装在一起。您可以使用ILMerge轻松地自己完成这项工作。看见