如何使用MEF通过合同名称导出/导入属性值?

问题描述

在我的WPF应用程序中,我希望将“宠物”类型的列表传递给另一个需要访问它的类。我正在使用MEF作为一种手段。在Class_A中,我将其设置为:

using System.ComponentModel.Composition;

public class Class_A : viewmodelBase 
{
   public ObservableCollection<Pet> Pets { get; set; }

   public Class_A()
   {
     // populate the Pets list
   }
   
   [Export("PetList")]
   public ObservableCollection<Pet> GetlistofPets
   {
         get
         {
             return Pets;
         }
   }
}

在Class_B中,我试图通过导入“ PetList”合同名称获取“宠物”列表:

using System.ComponentModel.Composition;

public class Class_B : viewmodelBase
{
   [Import("PetList")]
   public ObservableCollection<Pet> Pets { get; set; }

   public Class_B ()
   {
    
   }
  
   private void SomeFunctionThatGetsCalled()
   {
      if (Pets.Count > 0) //Pets is null
      {
        
      }
   }
}

但是当我调试代码时,我发现Class_B中的Pets列表为空。我尝试按照此site中的教程进行操作,该教程帮助我在应用程序中尝试了MEF,但无法将列表加载到Class_B中。有人可以帮助我了解为什么我的方法无效吗?预先非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)