我創建了一個新的.NET Core 1.1解決方案,並注意到一個奇怪的行爲:如果我在解決方案中創建多個項目並鏈接引用它們,我可以自由訪問類型位於依賴關係的依賴關係,任何級別下。允許訪問間接依賴關係類型的.NET Core 1.1
這是一個例子:
我們有一個沙盒液,巴茲類庫項目,一個酒吧類庫項目引用巴茲和富控制檯應用程序項目引用酒吧。
從美孚項目我能夠訪問和使用BazThing,在巴茲項目定義的類型,即使富不會對巴茲參考。
這適用的NuGet包過:如果我通過的NuGet添加實體框架巴茲我能夠在美孚項目使用的DbContext類型。
當項目用於實現層分離時,這是一個巨大的問題。現在
開發者被允許訪問和使用的依存關係或旁路層偏析的實施細節,既「惡意」和錯誤(在上述提到的例子中,智能感知將愉快地建議使用BazThings鍵入BA時沒有任何警告)。
這是事情從現在開始如何工作,還是我們錯過了什麼?
是否有可能以某種方式防止/抑制此行爲?
我在哪裏可以找到有關此行爲的文檔?
這是新的VS 2017中的一項新功能 – VMAtm
[.Net Core 1.1中的傳遞引用]的可能重複(http://stackoverflow.com/a/42431299/213550) – VMAtm
重複的http:// stackoverflow。com/questions/37963523/showing-classes-from-indirect-referenced-packages-in-net-core/38038192#38038192 – Thomas