何时满足属性导入

本文关键字:导入 属性 满足 何时 | 更新日期: 2023-09-27 18:27:25

什么时候满足属性导入?我认为它们会在构造函数之前得到满足,因为属性是在构造函数运行之前初始化的,但下面的示例显示ImportedClass在构造函数中为null。

我知道我可以通过使用ImportingConstructor来解决这个问题;这是为了理解何时满足房地产进口。

public MyClass
{
  [Import]
  public ImportedClass ImportedClass {get;set;}
  public MyClass()
  {
      //Imported Class is null at this point, so nothing can be done with it here.
  }
}

何时满足属性导入

在调用对象的构造函数之前,不能对其进行操作。不过,MEF为您的问题提供了一个解决方案,它有一个名为IPartImportsSompatiedNotification的接口

public MyClass : IPartImportsSatisfiedNotification
{
  [Import]
  public ImportedClass ImportedClass {get;set;}
  public MyClass()
  {
      //Imported Class is null at this point, so nothing can be done with it here.
  }
  public void OnImportsSatisfied() 
  {
     //ImportedClass is set at this point.
  }
}

关于MEF为设置导入而采取的操作;它首先调用构造函数,然后设置任何属性,然后调用通知方法。