【发布时间】:2010-10-25 19:09:33
【问题描述】:
这样做的正确方法是什么? 假设我们的项目中有一些第三方库,我们需要提供对一些密封控件的访问权限。 将使用 MEF 创建新的小部件并将其添加到应用程序中,它们应该能够从核心应用程序导入一些控件。 那么如何正确导出这些控件呢?
【问题讨论】:
标签: mvvm silverlight-4.0 mef
这样做的正确方法是什么? 假设我们的项目中有一些第三方库,我们需要提供对一些密封控件的访问权限。 将使用 MEF 创建新的小部件并将其添加到应用程序中,它们应该能够从核心应用程序导入一些控件。 那么如何正确导出这些控件呢?
【问题讨论】:
标签: mvvm silverlight-4.0 mef
如果您无法修改原始类(例如ThirdPartyComponent),那么您可以通过另一个类的属性进行导出(例如ThirdPartyComponentExporter):
public class ThirdPartyComponentExporter
{
[Export(typeof(ThirdPartyComponent))]
public ThirdPartyComponent Foo
{
get
{
return new ThirdPartyComponent();
}
}
}
对于可视化控件,您可能必须使用CreationPolicy.NonShared 来防止 MEF 在不同位置重用同一个实例。
【讨论】:
如何将第三方控件包装在“导出”类中,然后通过包装器访问该控件?
【讨论】: