Come eliminare i messaggi di analisi del codice per tutti i membri del tipo?

Come eliminare i messaggi di analisi del codice per tutti i membri del tipo?

Non c'è modo di sopprimere una regola per un'intera classe o enum in questo caso e, sfortunatamente, applicare la soppressione a tutti i suoi membri.

Ma quello che puoi fare è creare un CodeAnalaysisDictionary.xml , aggiungilo al tuo progetto contenente l'Enum e impostando la sua proprietà 'Build action' su CodeAnalysisDictionary :

Una volta impostato questo, puoi aggiungere le abbreviazioni e le eccezioni di maiuscole e minuscole al dizionario in questo modo:

<Dictionary>
      <Acronyms>
         <CasingExceptions>
            <Acronym>AED</Acronym>
            <Acronym>AFN</Acronym>
            <Acronym>ALL</Acronym>
            <Acronym>...</Acronym>
         </CasingExceptions>
      </Acronyms>
</Dictionary>

Sebbene queste eccezioni si applicheranno a qualsiasi elemento del codice contenente questi acronimi, impediranno la visualizzazione degli avvisi CA1709.

Consulta la documentazione per ulteriori informazioni sulle eccezioni che puoi impostare utilizzando i file del dizionario:

  • https://msdn.microsoft.com/en-us/library/bb514188.aspx#bkmk_dictionaryacronymscasingexceptionsacronym

No, non c'è modo di farlo senza soppressioni individuali. Il Scope argomento consente al motore di analisi del codice di sapere che tipo di cose è il Target argomento rappresenta. Ad esempio, se il Target è "A.B.C", si riferisce a uno spazio dei nomi chiamato A.B.C o una classe denominata C nello spazio dei nomi A.B ? "Scope" sarebbe stato forse meglio rappresentato da un nome come "TargetKind", ma questo, purtroppo, non cambia ciò che effettivamente rappresenta.

Data la bruttezza delle soppressioni in questo caso, potresti volerle generare in GlobalSuppressions.cs , quindi spostali in un file separato come CurrencyTypeMemberNameSuppressions.cs , che potresti (facoltativamente) annidare come file sotto il file contenente il tuo CurrencyType enum nella struttura del progetto in Visual Studio. Non l'ideale, ma forse la scelta migliore di un brutto lotto a questo punto...

Vedi anche questa risposta.


che dire di #pragma warning disable CA1709 ?per riattivare puoi usare #pragma warning restore CA1709 ma se questo enum è l'unico tipo nel tuo file puoi ometterlo.