2017-04-18 66 views
-2

多年來,我在幾個項目中注意到了這種模式,最近在RavenDB中也注意到了這種模式。在ILSpy爲什麼項目將Newtonsoft嵌入其名稱空間?

開幕Raven.Abstractions.dll,我注意到OL 「ProjectName.SomeScope.Newtonsoft」

enter image description here

這是爲什麼呢?做看看github中的源代碼,我猜測他們正在拉動Newtonsoft的源代碼,並使用Foddy將Newtonsoft類型編織到Raven程序集中。

我只能猜測這是爲了防止類型衝突:所以Raven.Abstractions.Dll可​​以有一個特定版本的Newtonsoft而不會強加你(作爲消費者)也參考該版本。

還有其他想法嗎?

+0

您是否使用任何轉換器進行轉換? –

+0

他們這樣做,所以你不必包括牛頓軟件的另一個依賴。而已。他們沒有編織任何東西。只需將組裝在一起。您可以使用ILMerge輕鬆完成此任務。請參閱https://www.microsoft.com/en-us/research/people/mbarnett/ – Amy

回答

2

當時的原因是它與其他使用json.net的不同並且有時不兼容的版本的項目產生了很多衝突。擁有我們自己的版本意味着我們可以避免所有這些。

相關問題