我正試圖圍繞MEF進行思考。 有一件事我不明白。MEF:如果我有多個出口但只需要一個導入?
假設我有一個名爲ISomething的接口,它是一個契約,並且在包含我的應用程序的文件夾中有多個程序集,我不知道它們中有多少個ISomething實現,或者哪一個包含一個。
如果我創建了一個我使用MEF的宿主應用程序,並希望得到一個ISomething,但只有一個,MEF如何決定它會給我哪個實現?或者,與普通的IoC容器類似,我如何告訴它它應該使用哪個實現?
在此先感謝您的答案。
我正試圖圍繞MEF進行思考。 有一件事我不明白。MEF:如果我有多個出口但只需要一個導入?
假設我有一個名爲ISomething的接口,它是一個契約,並且在包含我的應用程序的文件夾中有多個程序集,我不知道它們中有多少個ISomething實現,或者哪一個包含一個。
如果我創建了一個我使用MEF的宿主應用程序,並希望得到一個ISomething,但只有一個,MEF如何決定它會給我哪個實現?或者,與普通的IoC容器類似,我如何告訴它它應該使用哪個實現?
在此先感謝您的答案。
請參閱this blog post瞭解有關此問題以及您擁有的一些選項的討論。另外,Glenn Block有一篇博客文章,描述如何customize the container behavior with defaults。
格倫關於ExportProviders的文章給了我一個好主意。也許我應該使ExportProvider接受某種配置,其中可以指定默認導出。 – Venemo 2009-12-09 21:30:01
這非常合理,它是我們考慮的場景之一。 – 2009-12-10 10:13:29