Tengo un archivo HTTPSystemDefinitions.cs en el proyecto C # que básicamente describe el ISAPI de Windows más antiguo para el consumo mediante código administrado.
Esto incluye el conjunto completo de estructuras relevantes para la ISAPI, no todas o que son consumidas por código. En la compilación, todos los miembros de campo de estas estructuras están provocando una advertencia como la siguiente:
El campo de advertencia 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.SetHeader' nunca se asigna y siempre tendrá su valor predeterminado nulo
o
Advertencia El campo 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.HttpStatus' nunca se usa
¿Se pueden desactivar con #pragma warning disable
? Si es así, ¿cuáles serían los números de error correspondientes? Si no, ¿hay algo más que pueda hacer? Tenga en cuenta que solo sé qué hacer con este archivo, es importante que vea advertencias como estas provenientes de otros archivos.
Editar
Estructura de ejemplo: -
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)]
para asegurarse de que el diseño de la memoria sea correcto (en la implementación actual será incluso sin este atributo, pero AFAIK no está garantizado). Si no recuerdo mal, el compilador de C # detecta la presencia de este atributo y suprime automáticamente esas advertencias, ya que sabe que los campos deben estar allí para la interoperabilidad. (Podría estar equivocado sobre esto, por lo tanto, publicar como un comentario en lugar de una respuesta).
StructLayout
. Parece más limpio que suprimir las propias advertencias.