Common.Loggingfor.NETを使用しています。DebugFormatやInfoFormatなどのXXXFormat関数のいずれかを使用すると、CA1305警告が表示されます。右クリックして、コードで抑制するか、プロジェクト抑制ファイルに追加するかを指定することで、抑制するのは簡単です。GlobalSuppressions.csに1行追加して、DebugFormatへのすべての呼び出し(およびInfoFormat、TraceFormatなどの個別の行)でこの警告が発生するのをすべて抑制したいと思います。これまでのところ、私はそれを行う方法を理解することはできません。警告を右クリックして[メッセージの抑制]->[プロジェクト抑制ファイル]を選択すると、次のように追加されます。
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "Common.Logging.ILog.DebugFormat(System.String,System.Object[])", Scope = "member", Target = "My.Full.Namespace.Class.#MyFunctionName(int)")]
ご覧のとおり、抑制により、メッセージを抑制するためのアセンブリレベルの属性が作成されました。属性自体の中で、スコープは「メンバー」に設定され、ターゲットは名前空間で修飾されたクラス名「ドット」メソッドシグネチャに設定されます。これは確かにその関数でのDebugFormatの呼び出しのメッセージを抑制しますが、DebugFormatのすべての呼び出しのメッセージを抑制したいと思います。ターゲットを削除し、スコープを「モジュール」(および「アセンブリ」-それが有効かどうかはわかりません)に変更しようとしましたが、DebugFormatのすべての発生に対してこの警告を抑制できません。
理想的には、少なくともこれらのエントリ(または同様のもの)を含むGlobalSuppressions.csファイルを作成したいと思います。
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "Common.Logging.ILog.TraceFormat(System.String,System.Object[])", Scope = "module",)]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "Common.Logging.ILog.DebugFormat(System.String,System.Object[])", Scope = "module",)]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "Common.Logging.ILog.InfoFormat(System.String,System.Object[])", Scope = "module",)]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "Common.Logging.ILog.WarnFormat(System.String,System.Object[])", Scope = "module",)]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "Common.Logging.ILog.ErrorFormat(System.String,System.Object[])", Scope = "module",)]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "Common.Logging.ILog.FatalFormat(System.String,System.Object[])", Scope = "module",)]
誰かがこれを行う方法を知っていますか?
ありがとう。