CA2255: L'attributo ModuleInitializer
non deve essere usato nelle librerie
Proprietà | valore |
---|---|
ID regola | CA2255 |
Title | L'attributo ModuleInitializer non deve essere usato nelle librerie |
Categoria | Utilizzo |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitato per impostazione predefinita in .NET 9 | Come avviso |
Causa
Applicazione a un metodo all'interno di una libreria di ModuleInitializerAttribute classi.
Descrizione regola
Gli inizializzatori di modulo devono essere usati dal codice dell'applicazione per assicurarsi che i componenti di un'applicazione vengano inizializzati prima che il codice dell'applicazione inizi l'esecuzione. Se il codice della libreria dichiara un metodo con ModuleInitializerAttribute, può interferire con l'inizializzazione dell'applicazione e causare anche limitazioni nelle capacità di taglio dell'applicazione. Il codice della libreria non deve quindi utilizzare l'attributo ModuleInitializerAttribute .
Come correggere le violazioni
Anziché usare metodi contrassegnati con ModuleInitializerAttribute, la libreria deve esporre metodi che possono essere usati per inizializzare tutti i componenti all'interno della libreria e consentire all'applicazione di richiamare il metodo durante l'inizializzazione dell'applicazione.
Quando eliminare gli avvisi
È possibile eliminare gli avvisi da questa regola se una soluzione usa una libreria di classi a scopo di factoring del codice e il ModuleInitializerAttribute metodo non fa parte di una libreria o di un pacchetto condiviso o distribuito.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable CA2255
// The code that's violating the rule is on this line.
#pragma warning restore CA2255
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none
su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.CA2255.severity = none
Per disabilitare questa intera categoria di regole, impostare la gravità per la categoria su none
nel file di configurazione.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Usage.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.