2017-04-11 71 views
0

我已經在.net核心here中關注了洋蔥體系結構上的msdn文檔,但看起來你不能真正知道UI只知道服務層,無需複製代碼。在文章的最後部分(UI)中,啓動文件正在訪問倉庫。這合乎邏輯嗎?如果是這樣,爲什在洋蔥建築中的參考應該看起來像

回答

3

在本文的最後一部分(UI)中,啓動文件是 訪問回購。這合乎邏輯嗎?如果是這樣,爲什

我相信你是指下面的代碼 -

services.AddDbContext<ApplicationContext>(options => 
    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); 
services.AddScoped(typeof(IRepository<>), typeof(Repository<>)); 
services.AddTransient<IUserService, UserService>(); 
services.AddTransient<IUserProfileService, UserProfileService>(); 

這是正常的UI項目引用其他項目,並在IoC容器註冊的依賴,因爲組成根應儘可能靠近應用程序的入口點。

var userService = new UserService(); 

如果實例UserService使用UI 關鍵字,就成爲緊密耦合 - 在一個類中的變化迫使其他的變化。

IoC容器通過在運行時解析依賴關係並根據需要傳遞它們來解決依賴性問題。

如果您想了解更多關於DI,你可能需要閱讀Dependency Injection in .NET by Mark SeemannAdaptive Code via C# by Gary McLean Hall

相關問題