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

私はこれを参照しました - Properties private set; プロパティを内部またはプライベートに設定する必要があるかどうかわかりません。

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 に答える