1

我创建了一个自定义ComposablePartCatalog,ComposablePartDefinitionComposablePart.

这些都一起工作,以便在单独的 AppDomain 中创建组合部分。所有这些都在工作。问题是当一个包含导入的导出类型的实例(即一个具有导入属性的字段)被创建时,该字段没有被设置为预期的导入类型,即它为空。

当我不使用我的 customComposablePartDefinition时,即让它做默认组合时,会创建导入,因此它与类型无关。所以它一定是我在我的自定义 Composable 类中缺少的东西。

我不是这方面的专家,我一直在网上搜索有关创建ComposablePart满足导入的自定义的任何信息,但可以找到有关如何正确执行此操作的任何信息。

在我的 customComposablePart中,我重写GetExportedValue了 which 返回导出类型的实例,只要导出的类型不导入任何内容,它就可以正常工作。

我显然遗漏了一些重要的东西,但我找不到解释如何创建导入的文档。

在 中ComposablePart,有SetImport覆盖,但我应该如何在派生类中实现它?这是让我的导入工作的关键吗?GetExportedValue或者当我实际创建导出类型的实例以使其“组合”其导入时,我是否需要做一些事情?

4

1 回答 1

0

我已经自己想通了。在创建远程实例的“远程”上下文中AppDomain,我需要使用新目录(我使用从调用域传递的信息创建)和CompositionContainer将远程实例传递给构造函数的新目录来组合远程实例。

于 2012-04-30T12:48:15.080 回答