1

是否建议我们将 Import 放在属性而不是字段上?我在一个字段上尝试过它并且它正在工作,但 Resharper 告诉我一个警告,该字段从未初始化过。

4

1 回答 1

2

ReSharper 无法识别 MEF 将设置变量,并且由于无法保证 MEF 将设置变量(例如,如果它没有放入容器中),因此 ReSharper 对此发出警告是合理的. 您可以忽略它,也可以简单地将字段初始化为 null(或 default(T))。

至于是否应该使用属性或字段,我认为使用字段很好(假设它不是公共的)。我通常会为我想要公开的东西保留属性。这里要考虑的一种特殊情况是,在 SL 或部分信任等低信任场景中,私有成员上存在导入问题,因为 MEF 使用反射,而在某些场景中您不能使用私有反射。

于 2012-08-26T04:29:11.780 回答