C # projesinde bir HTTPSystemDefinitions.cs dosyam var, temelde eski Windows ISAPI'yi yönetilen kod tarafından tüketim için açıklıyor.
Bu, tümü olmayan veya kod tarafından tüketilen ISAPI ile ilgili tüm Yapı setini içerir. Derlemede bu yapıların tüm saha üyeleri aşağıdaki gibi bir uyarıya neden oluyor: -
Uyarı Alanı 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.SetHeader' asla atanmaz ve her zaman varsayılan değeri null olacaktır
veya
Uyarı 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.HttpStatus' alanı asla kullanılmaz
Bunlar ile devre dışı bırakılabilir #pragma warning disable
mi? Öyleyse, ilgili hata numaraları ne olur? Yoksa yapabileceğim başka bir şey var mı? Bunu sadece bu dosya için ne yapacağımı, diğer dosyalardan gelen bu gibi uyarıları görmem önemli olduğunu unutmayın.
Düzenle
Örnek yapı: -
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)]
bellek düzeninin doğru olduğundan emin olmak için koyarsınız (mevcut uygulamada bu öznitelik olmadan bile olacaktır, ancak AFAIK garanti edilmez). Doğru hatırlıyorsam, C # derleyicisi bu özniteliğin varlığını algılar ve alanların birlikte çalışma için orada olması gerektiğini bildiği için bu uyarıları otomatik olarak bastırır. (Bu konuda yanılıyor olabilirim, dolayısıyla bir cevap yerine yorum olarak yayınlayabilirim).
StructLayout
. Uyarıları bastırmaktan daha temiz görünüyor.