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.