2012-04-12 9 views
1

カスタムを作成しましたComposablePartCatalogComposablePartDefinition、およびComposablePartです。リモートAppDomainでインポートを満たすカスタムComposablePartを作成するにはどうすればよいですか?

これらはすべて連携して、作成された部分が別のAppDomainで作成されます。すべてが機能しています。この問題は、インポートを含むエクスポートされた型のインスタンス、つまりインポート属性があるフィールドが作成され、そのフィールドが予想されるインポートされた型に設定されていない、つまりnullである場合です。

私のカスタムComposablePartDefinitionを使用しない場合、つまりデフォルトのコンポジションにする場合、インポートは作成され、タイプに関連するものではありません。だから私のカスタムComposableクラスには欠けているものでなければなりません。

私は専門家ではなく、インポートを満たすカスタムComposablePartの作成に関する情報をWebから検索していますが、これを正しく行う方法についての情報はすべて見つかります。

私のカスタムComposablePartでは、エクスポートされた型のインスタンスを返すGetExportedValueをオーバーライドします。これは、エクスポートされた型が何もインポートしない限り正常に動作します。

私は明らかに何か重要なものがありませんが、インポートがどのように作成されたかを説明するドキュメントは見つかりません。

ComposablePartには、SetImportのオーバーライドがありますが、これを派生クラスでどのように実装する必要がありますか?これは私の輸入品を稼働させる鍵ですか?または、実際にエクスポートされた型のインスタンスを作成してそのインポートを「作成」するときに何かを行う必要がありますか?GetExportedValue

答えて

0

私はそれを自分で考え出しました。リモートインスタンスが作成される「リモート」AppDomainのコンテキストでは、新しいカタログ(呼び出し元ドメインから渡された情報を使用して作成する)とリモートインスタンスをコンストラクタに渡す新しいCompositionContainerを使用してリモートインスタンスを作成する必要があります。

関連する問題