Eu tenho um arquivo HTTPSystemDefinitions.cs no projeto C # que basicamente descreve o ISAPI do Windows mais antigo para consumo por código gerenciado.
Isso inclui o conjunto completo de Estruturas relevantes para a ISAPI, não todas ou que são consumidas por código. Na compilação, todos os membros do campo dessas estruturas estão causando um aviso como o seguinte: -
O campo de aviso 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.SetHeader' nunca é atribuído e sempre terá seu valor padrão nulo
ou
Aviso O campo 'UnionSquare.ISAPI.HTTP_FILTER_PREPROC_HEADERS.HttpStatus' nunca é usado
Eles podem ser desativados com #pragma warning disable? Em caso afirmativo, quais seriam os números de erro correspondentes? Se não, posso fazer mais alguma coisa? Tenha em mente que eu apenas o que fazer para este arquivo, é importante que eu receba avisos como este vindo de outros arquivos.
Editar
Estrutura de exemplo: -
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)]deve garantir que o layout da memória está correto (na implementação atual será mesmo sem este atributo, mas AFAIK não é garantido). Se bem me lembro, o compilador C # detecta a presença desse atributo e suprime automaticamente os avisos, pois sabe que os campos devem estar lá para interoperabilidade. (Posso estar errado sobre isso, postando como um comentário em vez de uma resposta).
StructLayout. Parece mais limpo do que suprimir os próprios avisos.