我正在考虑尝试调整一组导出的测试处理程序,以便一些可以自动使用而无需人工交互,而另一些可以手动使用。当它们具有手动能力时,它们将显示不同的用户控件。
我知道您可以使用合同名称导出/导入,但我想知道这样使用有什么缺点:
[Export(typeof(TestStepHandler))]
[Export("ManualTest", typeof(TestStepHandler))]
这样我就可以在与手动测试相关的一个 ViewModel 中导入合同名称,并在其他地方导入另一个 ViewModel 中的所有内容。我想我仍然需要一个手动测试的属性,以便“DataTemplate”在用户模式下显示时以不同的方式工作,但这很容易迭代导入的列表。
我确实考虑过我可以使用元数据以及Lazy
导入和过滤,但是与使用和不使用合约名称的导出相比,它有什么优势?