1

カスタム、、、を作成しComposablePartCatalogましComposablePartDefinitionComposablePart

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

カスタムを使用しない場合ComposablePartDefinition、つまりデフォルトの構成を実行させる場合、インポートが作成されるため、タイプに関連するものは何もありません。したがって、カスタムのComposableクラスに欠けているものである必要があります。

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

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

明らかに重要なものが欠けていますが、インポートの作成方法を説明するドキュメントが見つかりません。

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

4

1 に答える 1

0

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

于 2012-04-30T12:48:15.080 に答える