在我的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中。有人可以帮助我了解为什么我的方法无效吗?预先非常感谢。