建议我们将导入放置在属性而不是字段上吗?我在一个字段上尝试了它并且它正在工作但是Resharper告诉我一个警告,该字段从未被初始化。
答案 0 :(得分:2)
ReSharper无法识别MEF将设置变量,因为没有保证MEF将设置变量(例如,如果它没有被放入容器中),所以ReSharper是合理的警告这个。您可以忽略它,也可以只将字段初始化为null(或默认值(T))。
至于你是否应该使用一个属性或字段我认为使用一个字段是好的(假设它不公开)。我通常会保留我希望公开披露的内容的属性。这里要考虑的一个特殊情况是,在SL或paritial信任等低信任情况下,私有成员会导入一些问题,因为MEF使用反射,而在某些情况下您不能使用私有反射。