3

我有一个公共控制器类,其中我使用以下属性

[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);

我提到了这个 -属性私有集;但不明白我是否需要设置内部或私有属性。

4

1 回答 1

4

一起使用 MEF 和代码分析时,这是“正常”警告。

您的属性将在运行时由 MEF 容器通过反射设置,因此,没有任何属性设置器调用,这可以由 CA 静态证明。唯一的方法是通过SuppressMessage属性抑制此消息:

[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
[Import]
private Lazy<IVoiceController> VoiceController { get; set; }
于 2012-12-04T07:12:41.357 回答