簡體   English   中英

MEF:如果我有多個出口但只需要一次導入怎么辦?

[英]MEF: What if I have multiple exports but need only one import?

我想把我的思緒包裹在MEF周圍。 有一點我不明白。

假設我有一個名為ISomething的接口,它是一個契約,我在包含我的應用程序的文件夾中有多個程序集,我不知道它們中有多少ISomething實現,或者哪一個包含一個。

如果我創建一個我使用MEF的主機應用程序,並希望得到一個ISomething,但只有一個,MEF如何決定它將給我哪個實現?

或者,與常見的IoC容器類似,如何告訴它應該使用哪個實現?

提前感謝您的回答。

有關問題的討論以及您擁有的一些選項,請參閱此博客文章 此外,Glenn Block有一篇博客文章描述了如何使用默認值自定義容器行為

對於MEF,如果您有許多將滿足Import的Export,您有兩個選擇:

  1. 更改您的導入以使用[ImportMany] 在運行時確定要用於合同的哪個Imports,可能只是選擇第一個,或隨機選擇一個。
  2. [ImportMany]元數據結合使用以確定要使用的Import。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM