Ho un file HTTPSystemDefinitions.cs nel progetto C # che sostanzialmente descrive l'ISAPI di Windows precedente per l'utilizzo da parte del codice gestito.
Ciò include il set completo di strutture rilevanti per ISAPI non tutte o che vengono utilizzate dal codice. Durante la compilazione tutti i membri del campo di queste strutture causano un avviso come il seguente: -
Il campo di avviso "UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.SetHeader" non è mai assegnato e avrà sempre il valore predefinito null
o
Attenzione Il campo 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.HttpStatus' non viene mai utilizzato
Possono essere disabilitati con #pragma warning disable
? In caso affermativo, quali sarebbero i numeri di errore corrispondenti? In caso contrario, c'è qualcos'altro che posso fare? Tieni presente che ho solo cosa fare per questo file, è importante che riceva avvisi come questi provenienti da altri file.
modificare
Struttura di esempio: -
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)]
assicurarti che il layout della memoria sia corretto (nell'attuale implementazione sarà anche senza questo attributo, ma AFAIK non è garantito). Se ricordo bene, il compilatore C # rileva la presenza di questo attributo e sopprime automaticamente tali avvisi poiché sa che i campi devono essere presenti per l'interoperabilità. (Potrei sbagliarmi su questo, quindi postare come commento invece che come risposta).
StructLayout
. Sembra più pulito che sopprimere gli avvisi stessi.