我有一个公共Controller类,我在其中使用以下属性
[Import]
private TransferRegionViewModel TransferRegionView { get; set; }
[Import]
private Lazy<IVoiceController> VoiceController { get; set; }
我收到了以下CA警告:
CA1811:Microsoft.Performance:'TransferController.VoiceController.set(Lazy)'似乎没有上游公共或受保护的呼叫者。
我正在使用VoicdeController属性:
VoiceController.Value.CallTransfer(phoneNumber.PhoneNumber, true);
我引用了这个 - Properties private set;,但不明白我是否需要设置内部或私有属性。
答案 0 :(得分:4)
一起使用MEF和代码分析时,这是“正常”警告。
您的属性将由MEF容器通过反射在运行时设置,因此,没有任何属性设置器的调用,这可以由CA静态证明。唯一的方法是通过SuppressMessage
属性
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
[Import]
private Lazy<IVoiceController> VoiceController { get; set; }