2019/11/18

[ASP.NET MVC] 如何在 MVC 專案下使用 Unity.Mvc IoC 依賴注入

前言

在 ASP.NET Core 的環境, 預設早已支援 Dependency Injection (依賴注入) 的設計模式, 但在 ASP.NET MVC 5 以前的專案沒有這樣的功能, 本篇簡單介紹如何使用 Unity.Mvc 套件來達成依賴注入。

環境

  • Visual Studio 2019 16.3.9
  • ASP.NET MVC 5
  • .NET Framework 4.7.2
  • NuGet 套件: Unity.Mvc 5.11.1 (Author: Unity Open Source Project)

在專案中加入 Unity.Mvc




安裝套件完成後,會自動在 App_Start 加入 2 個檔案: UnityConfig.csUnityMvcActivator.cs


基本上所有的啟動功能它都做完了, 我們只要針對 UnityConfig.cs 這個檔案加入我們的註冊的類型即可

例如:

 

如果有忘記註冊的類型, 卻被使用到了, 即會出現以下的錯誤訊息

程式用法

在 constructor 使用 interface 即會自動注入對應的實體

是不是很方便呢? 前人種樹, 後人乘涼, 現在只要專注去做自己該對應的相關程式, 多餘的設定全都被妥當安排了。 不知道是不是因為它太簡單使用了, 所以專案連 README 文件都沒寫 XD。 所以寫一篇用法以備不時之需, 個人覺得這是目前用過最簡易使用的套件了, 因為幾乎無痛使用啊!!

範例程式: UnityMvcDemo1

相關連結

2019/11/16

[EF] 專案使用 Entity Framework 6.3.0 造成無法正確執行 Migration 動作

環境

  • VS 2019 16.3.9
  • Web Application (.NET Framework) 專案
  • Entity Framework 6.3.0

問題

在新建立的 Web 專案中, 採用 Entity Framework 6.3.0 版本, 執行 migration 時出現 Path 為空值的錯誤

Enable-Migrations : Cannot bind argument to parameter 'Path' because it is null.

暫時解決方法

降版至 EF 6.2.0

至於修正版本, 將會在 6.4.0 時修正並釋出, 所以 6.3.0 就直接跳過不要用吧!!

相關連結