ฉันมีไฟล์ HTTPSystemDefinitions.cs ในโครงการ C # ซึ่งโดยพื้นฐานแล้วจะอธิบายถึง ISAPI ของ windows รุ่นเก่าสำหรับการใช้งานโดยใช้รหัสที่มีการจัดการ
ซึ่งรวมถึงชุดโครงสร้างทั้งหมดที่เกี่ยวข้องกับ 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สำหรับใช้ ดูเหมือนสะอาดกว่าการระงับคำเตือนด้วยตนเอง