1
MEFを使用してファクトリパターンを実装しようとしています。 私がやっていることは、製品クラスのインターフェースを持っていて、具体的なクラスを具体的なクラスごとに異なるメタデータでエクスポートすることです。次のように私は怠け者のリストは、それに対応するメタデータとともに製品のインタフェースをロードされているファクトリクラスで 、:MEFパラメータ化されたコンストラクタを持つファクトリパターン
[ImportMany("Product")]
public List<Lazy<IProduct, IProductMetaData>> ProductTypes;
、関数を作成するには、私は与えられた一つの実施を返すために、製品の種類のもの上記のリストをフィルタリング
public IProduct CreateProduct(string type)
{
var productType = ProductTypes.FirstOrDefault(x => x.Metadata.Type == type);
return productType .Value;
}
この時点まで、すべてのものが正常に動作します。ファクトリクラスによって返される具体的なProductクラスのそれぞれがそのコンストラクタ内にパラメータを持つ場合はどうなるか???