在MEF中暴露第三方视觉控制的正确方法

时间:2010-10-25 19:09:33

标签: mvvm silverlight-4.0 mef

这样做的正确方法是什么? 假设我们的项目中有一些第三方库,我们需要访问一些密封的控件。 将使用MEF创建新的小部件并将其添加到应用程序,并且他们应该能够从核心应用程序导入一些控件。 那么如何正确导出这些控件呢?

2 个答案:

答案 0 :(得分:0)

如何在“导出”类中包装第三方控件,然后通过包装器访问此控件?

答案 1 :(得分:0)

如果您无法修改原始类(例如ThirdPartyComponent),则可以通过其他类的属性(例如ThirdPartyComponentExporter)进行导出:

public class ThirdPartyComponentExporter
{
   [Export(typeof(ThirdPartyComponent))]
   public ThirdPartyComponent Foo
   {
      get
      {
         return new ThirdPartyComponent();
      }
   }
}

对于可视化控件,您可能必须使用CreationPolicy.NonShared来阻止MEF在不同位置重用相同的实例。