iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
2
Modern Web

打net core肉飯系列 第 20

[2020鐵人賽] Day20 - 共用類別庫(Class Library)

  • 分享至 

  • xImage
  •  

前言
到目前為止,我們已經建置完了Controller、View、Model,整體專案已準備完成,也知道如何傳遞資料、Model Binding、共用前端元件。接著,我們現在來看看後端共用的部分,猶記得的之前參與到的一個案子,其情況是一個solution有兩個csproj(A,B),但其中有部分商業邏輯這兩個csproj是有相似之處,但又不想一樣的商業邏輯寫兩遍(A寫一次,B寫一次),故使用了class library來共用(.cs的檔案),可以減少程式碼重複使用,也很好維護。

實作步驟

  1. 首先,在方案檔(sln)裡面已經先有了兩個MVC專案檔(csproj)
  2. 在方案上右鍵 -> 加入 -> 新增專案
  3. 這裡我們選擇類別庫(class library)專案,並加以命名,BaseLibrary
  4. 類別庫新增完成,現在,我們可以把想要的class檔給放入類別庫中以利共用
  5. 在我們的類別庫中新增一個CommonMethod.cs,並寫好Test方法未來要給A和B共用
  6. 接著,在我們的兩個MVC專案檔A和B中設定參考,在專案檔上右鍵->加入->參考
  7. 參考選擇我們剛剛建立好的BaseLibrary類別庫,打勾之後按下確定(引用其dll)
  8. 兩個MVC專案的參考都加上之後我們就可以在專案檔的參考中發現我們剛剛加入的BaseLibrary
  9. 已經大功告成了,我們現在在這兩個A和B專案上已經可以使用到剛剛我們新增在BaseLibrary類別庫裡的Test方法了!裡面會發現被兩個地方給引用,當然就是A跟B。

示意圖
最後,我們的架構就如下圖所示
https://ithelp.ithome.com.tw/upload/images/20201005/201117666V99Jm7KmE.png

參考資料
https://docs.microsoft.com/zh-tw/dotnet/core/tutorials/library-with-visual-studio


上一篇
[2020鐵人賽] Day19 - Model Binding(2/2)
下一篇
[2020鐵人賽] Day21 - Razor Page(1/3)
系列文
打net core肉飯30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言