[英]Dependency Injection for built in types
之前可能已經提出過這個問題,但在搜索SO時我沒有找到任何內容。
使用依賴注入時,您通常如何處理列表,網絡憑據等類型。
在我的一個服務構造函數中,我有:
_itemsCheckedForRelations = new List<Guid>();
_reportManagementService.Credentials = new NetworkCredential([...]);
您是否會將這些重構為自定義工廠類/接口並注入它們或按照我在此處所做的操作?
我不太確定如何處理這些類型的對象創建。
如果您只需要閱讀列表,就可以輕松地將List<Guid>
替換為IList<Guid>
或ICollection<Guid>
- 甚至IEnumerable<Guid>
。
對於尚未實現接口或具有虛擬成員的其他BCL類型,您需要自己提取接口。 但是,在這樣做時,您應該注意Leaky Abstractions 。
你可以兩條路線; 首先,正如您所說,為它們創建一個包裝器並注入它。 但是,這取決於您希望如何填充正在包裝的對象的狀態。 這個案子不是我個人所做的。 查看關於動態parmaters的Krzysztof Kozmic博客:
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.