मेरे पास C # प्रोजेक्ट में एक HTTPSystemDefinitions.cs फ़ाइल है जो मूल रूप से प्रबंधित कोड द्वारा खपत के लिए पुराने विंडोज़ ISAPI का वर्णन करती है।
इसमें ISAPI से संबंधित संरचनाओं का पूरा सेट शामिल है, जो सभी या कोड द्वारा खपत नहीं हैं। संकलन पर इन संरचनाओं के सभी क्षेत्र के सदस्य निम्नलिखित की तरह एक चेतावनी का कारण बन रहे हैं: -
चेतावनी फ़ील्ड 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.SetHeader' को कभी भी असाइन नहीं किया गया है, और हमेशा इसका डिफ़ॉल्ट मान शून्य होगा
या
चेतावनी फ़ील्ड '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)]
यह सुनिश्चित करने के लिए कहेंगे कि मेमोरी लेआउट सही है (वर्तमान कार्यान्वयन में यह इस विशेषता के बिना भी होगा, लेकिन AFAIK इसकी गारंटी नहीं है)। अगर मुझे सही तरीके से याद है, तो C # कंपाइलर इस विशेषता की उपस्थिति का पता लगाता है और स्वचालित रूप से उन चेतावनियों को दबा देता है क्योंकि यह जानता है कि इंटरोप के लिए फ़ील्ड्स होना चाहिए। (मैं इस बारे में गलत हो सकता है, इसलिए उत्तर के बजाय टिप्पणी के रूप में पोस्ट कर रहा हूं)।
StructLayout
। यह चेतावनियों को दबाने से ज्यादा साफ है।