Tôi có tệp HTTPSystemDefinitions.cs trong dự án C # mô tả về cơ bản ISAPI cửa sổ cũ hơn để sử dụng bằng mã được quản lý.
Điều này bao gồm toàn bộ các Cấu trúc có liên quan đến ISAPI, không phải tất cả hoặc được sử dụng bởi mã. Khi biên dịch, tất cả các thành viên trường của các cấu trúc này gây ra cảnh báo như sau: -
Trường Cảnh báo 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.SetHeader' không bao giờ được gán cho và sẽ luôn có giá trị mặc định là rỗng
hoặc là
Cảnh báo Trường 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.HttpStatus' không bao giờ được sử dụng
Có thể tắt những điều này với #pragma warning disable
? Nếu vậy các số lỗi tương ứng sẽ là bao nhiêu? Nếu không, tôi có thể làm gì khác? Hãy nhớ rằng tôi chỉ làm điều này cho tệp này, điều quan trọng là tôi nhận được các cảnh báo như thế này đến từ các tệp khác.
Biên tập
Cấu trúc ví dụ: -
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)]
để đảm bảo bố cục bộ nhớ là chính xác (trong triển khai hiện tại, nó sẽ thậm chí không có thuộc tính này, nhưng AFAIK thì nó không được đảm bảo). Nếu tôi nhớ không nhầm, trình biên dịch C # phát hiện sự hiện diện của thuộc tính này và tự động loại bỏ các cảnh báo đó vì nó biết các trường phải ở đó để tương tác. (Tôi có thể sai về điều này, do đó đăng dưới dạng bình luận thay vì câu trả lời).
StructLayout
. Nó có vẻ rõ ràng hơn là tự ngăn chặn các cảnh báo.