[英].NET Core 1.1 allowing access to indirect dependencies types
我創建了一個新的.NET Core 1.1解決方案,並注意到一個奇怪的行為:如果我在該解決方案中創建多個項目並對其進行鏈式引用,則可以自由訪問位於某個依賴項依賴項中的類型,無論其級別如何。
這是一個例子:
我們有一個沙箱解決方案,一個Baz類庫項目,一個引用Baz的Bar類庫項目和一個引用Bar的Foo控制台應用程序項目。
從Foo項目中,我可以訪問和使用BazThing (在Baz項目中定義的一種類型),即使Foo在Baz上沒有引用。
這也適用於NuGet包:如果我通過NuGet將實體框架添加到Baz ,則可以在Foo項目中使用DbContext類型。
當項目用於實現層隔離時,這是一個巨大的問題。
現在,允許開發人員“惡意”和錯誤地訪問和使用依賴項或旁路層隔離的實現詳細信息(在上述示例中,IntelliSense會在輸入ba而沒有任何警告的情況下愉快地建議使用BazThings )。
從現在開始這是工作方式嗎,還是我們缺少了什么?
是否有可能以某種方式預防/抑制這種行為?
在哪里可以找到有關此行為的文檔?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.