C#プロジェクトにHTTPSystemDefinitions.csファイルがあり、マネージコードが使用する古いWindows ISAPIを基本的に記述しています。
これには、ISAPIに関連するすべてではない、またはコードによって使用される構造の完全なセットが含まれます。コンパイル時に、これらの構造のすべてのフィールドメンバーが次のような警告を引き起こしています。
警告フィールド 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.SetHeader'は割り当てられず、常にデフォルト値nullになります
または
警告フィールド 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.HttpStatus'は決して使用されません
これらを無効にできます#pragma warning disable
か?もしそうなら、対応するエラー番号は何でしょうか?そうでない場合、他に何かできることはありますか?このファイルに対してこれを行うのは私だけであることを覚えておいてください。重要なのは、他のファイルからのこのような警告が表示されることです。
編集する
構造体の例:-
struct HTTP_FILTER_PREPROC_HEADERS
{
//
// For SF_NOTIFY_PREPROC_HEADERS, retrieves the specified header value.
// Header names should include the trailing ':'. The special values
// 'method', 'url' and 'version' can be used to retrieve the individual
// portions of the request line
//
internal GetHeaderDelegate GetHeader;
internal SetHeaderDelegate SetHeader;
internal AddHeaderDelegate AddHeader;
UInt32 HttpStatus; // New in 4.0, status for SEND_RESPONSE
UInt32 dwReserved; // New in 4.0
}
[StructLayout(LayoutKind.Sequential)]
、メモリレイアウトが正しいことを確認するために配置します(現在の実装では、この属性がない場合でも、属性は保証されません)。私が正しく覚えている場合、C#コンパイラはこの属性の存在を検出し、相互運用のためにフィールドが存在する必要があることを認識しているため、これらの警告を自動的に抑制します。(私はこれについて間違っている可能性があるため、回答ではなくコメントとして投稿します)。
StructLayout
。警告自体を抑制するよりもクリーンなようです。