與MEF

2012-10-05 92 views
1

創建一個工廠我基本上已經有一個工廠方法,該方法在一個類型的產品,我們有特別返回IProfileService的實現能夠處理該產品的一類。如果我想使用MEF這樣我就可以實現了IProfileService的不同實現方式中,當該特定產品被安裝這將是一個很好的做法,只會被安裝在另一臺DLL?與MEF

我首先想到的是用元數據的ImportMany來形容它處理什麼樣的產品,然後只需使用LINQ查詢在我的工廠方法在產品傳遞來比較的元數據。這聽起來不錯,還是有更好的方法?

回答

1

我認爲這做法是將工作得很好。我想不出另一種更好的方式。

,可以使用這種方法來使用的一種技術是延遲加載。請參閱MEF上的this great article。通過在導出中使用Lazy<T>,您的IProfileService對象將不會創建,直到您需要它們。

+0

真棒非常感謝你。 – twreid

+0

也謝謝你那篇文章,它是我讀過的最好的MEF之一。 – twreid