编程语言
首页 > 编程语言> > c#-WPF中的私有导入属性的CA1811警告

c#-WPF中的私有导入属性的CA1811警告

作者:互联网

我有一个公共Controller类,在其中使用以下属性

[Import]
private TransferRegionViewModel TransferRegionView { get; set; }

[Import]
private Lazy<IVoiceController> VoiceController { get; set; }

我收到以下CA警告:

CA1811 : Microsoft.Performance: ‘TransferController.VoiceController.set(Lazy)’ appears to have no upstream public or protected callers.

我正在使用VoicdeController属性为:

VoiceController.Value.CallTransfer(phoneNumber.PhoneNumber, true);

我提到了这个-Properties private set;,但不知道是否需要将属性设置为内部或私有.

解决方法:

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

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

[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
[Import]
private Lazy<IVoiceController> VoiceController { get; set; }

标签:properties,mef,wpf,c,net
来源: https://codeday.me/bug/20191031/1976675.html