Olvasás angol nyelven

Megosztás a következőn keresztül:


CA2255: Az ModuleInitializer attribútum nem használható kódtárakban

Tulajdonság Érték
Szabályazonosító CA2255
Cím Az ModuleInitializer attribútum nem használható kódtárakban
Kategória Használat
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 9-ben Figyelmeztetésként

Ok

ModuleInitializerAttribute Alkalmazás egy osztálytáron belüli metódusra.

Szabály leírása

A modulinicializálókat az alkalmazáskód arra használja, hogy az alkalmazás összetevői inicializálva legyenek az alkalmazáskód végrehajtása előtt. Ha a kódtárkód egy metódust deklarál az alkalmazással, az megzavarhatja az ModuleInitializerAttributealkalmazás inicializálását, és korlátozásokat eredményezhet az alkalmazás vágási képességeiben. A kódtárkód ezért nem használhatja az ModuleInitializerAttribute attribútumot.

Szabálysértések kijavítása

Ahelyett, hogy a metódusokat ModuleInitializerAttributemegjelölte volna, a kódtárnak olyan metódusokat kell elérhetővé tennie, amelyekkel inicializálható a kódtár bármely összetevője, és lehetővé kell tennie, hogy az alkalmazás meghívja a metódust az alkalmazás inicializálása során.

Mikor kell letiltani a figyelmeztetéseket?

A szabályból származó figyelmeztetéseket nyugodtan letilthatja, ha egy megoldás kódfaktorozási célokra osztálytárat használ, és a ModuleInitializerAttribute metódus nem része megosztott vagy elosztott kódtárnak vagy csomagnak.

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

#pragma warning disable CA2255
// The code that's violating the rule is on this line.
#pragma warning restore CA2255

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

[*.{cs,vb}]
dotnet_diagnostic.CA2255.severity = none

A teljes szabálykategória letiltásához állítsa be a kategória súlyosságát none a konfigurációs fájlban.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Usage.severity = none

További információ: Kódelemzési figyelmeztetések letiltása.

Lásd még