http://pwlodek.blogspot.in/2010/12/introduction-to-interceptingcatalog.htmlから参照しました
これは非常に良い例ですが、このコードの使用には少し混乱しています。私はWPF + Prism + MEFアプリケーションを作成しています。ここで、「Stock Trader RI」の例で定義されているように、すべての依存関係を定義しています。Stock Trader RIに従って、すべてのモジュールをMyBootstrapperクラスに初期化しています。私のプロジェクトでは、上記のリンクの例で提供されているように、Open Generic をサポートする必要があります。今私の質問は、サンプル コードをどこに実装するかです。それを MyBootstrapper ConfigureAggregateCatalog() メソッドに実装しようとしています。
[CLSCompliant(false)]
public partial class ImsBootstrapper : MefBootstrapper
{
protected override void ConfigureAggregateCatalog()
{
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (ImsBootstrapper).Assembly));
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (ImsCommands).Assembly));
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (DalModel).Assembly));
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (TestClass).Assembly));
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (TestClassImp).Assembly));
// Create source catalog
var typeCatalog = new TypeCatalog((typeof(RegistrationViewModel)));
// Create catalog which supports open-generics, pass in the registry
var genericCatalog = new GenericCatalog(new MyGenericContractRegistry());
// Aggregate both catalogs
var aggregateCatalog = new AggregateCatalog(typeCatalog, genericCatalog);
// Create the container
//var container = new CompositionContainer(aggregateCatalog);
this.Container = new CompositionContainer(aggregateCatalog);
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(StudentModel).Assembly));
}
しかし、それは機能していませんが、私を案内していただけますか? 上記のリンクで与えられた例をどこで使用して、オープンジェネリック(Open Generic Public Class Repositoryの例: IRepository)サポートを取得しますか?
- BootStrapper で
- またはいくつかは他のものでした
私の質問についてまだ混乱している場合は、例を挙げてください 「Stock Trader RI」で OpenGeneric サポートを取得するにはどうすればよいですか デモアプリケーションは「MefContrib」を使用してプリズムに付属しています このリンクhttp:/ /pwlodek.blogspot.in/2010/12/introduction-to-interceptingcatalog.htmlしかし、このコードをどこで呼び出すべきか混乱しました。