私はコードに登録する必要がありますカスタムタイプのインスタンスを持っている:MEFを使用してタイプをコードに登録するにはどうすればよいですか?
container.RegisterType(typeof(Isome), myvar);
ので、それはこのように、通常使用することができます:
[Import]
ISome var1 ;
は、どのように私は、コンテナへの参照を取得できますか?
私はコードに登録する必要がありますカスタムタイプのインスタンスを持っている:MEFを使用してタイプをコードに登録するにはどうすればよいですか?
container.RegisterType(typeof(Isome), myvar);
ので、それはこのように、通常使用することができます:
[Import]
ISome var1 ;
は、どのように私は、コンテナへの参照を取得できますか?
私はPrismについてはわかりませんが、MEFではコンテナに型を登録することはありません。これは、コードをデカップリングする目的を破る依存性を導入します。あなたが発見するMEFのためISome
タイプを使用できるようにするには何
あなたがISome
インタフェースを実装するクラスの[Export(typeof(ISome))]
属性を入れています。
構成では、MEFはISomeインターフェイスタイプでキーイングされたインポート属性を確認し、ISomeインターフェイスタイプで一致するエクスポートキーを探します。 Export属性を持つ実装クラスが見つかります。 MEFは、エクスポートされたクラスのインスタンスを作成し、それをインポートプロパティに割り当てます。
構成ステップでは、MEFがマッチメイキングのマジックを読み込んでマジックするためのタイプまたはアセンブリのカタログを提供する必要があります。実装クラスを含むアセンブリがそのカタロググループに含まれていることを確認します。
私は理解していますが、タイプの実装にはカスタム初期化が必要です。したがって、質問 – user1102610
どのようなカスタム初期化ですか? – dthorpe