4

什么时候可以满足房地产进口?我认为他们会在构造函数之前得到满足,因为属性是在构造函数运行之前初始化的,但是下面的示例显示ImportedClass在构造函数中为 null。

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

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.
  }
}
4

1 回答 1

7

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

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 设置导入的操作;它首先调用构造函数,然后设置任何属性,然后调用通知方法。

于 2013-08-13T12:00:28.517 回答