web-dev-qa-db-fra.com

Le type de base n'est pas conforme à CLS, quelles raisons de cet avertissement?

J'ai été averti de sujet sur l'une de mes classes. En fait, la classe est très simple, juste un héritier de mon type de base générique. De plus, j'ai d'autres héritiers de cette classe générique à travers la solution et il n'y a pas de tels avertissements.

Qu'est-ce qui pourrait être la (s) raison (s) de cela? Compilateur ne donne aucune indemnité de pourquoi le type de base n'est pas conforme à CLS

34
DarkDeny

Vous avez probablement [Assembly:CLSCompliant(true)] quelque part dans ce projet spécifique. Cela déclenche le compilateur pour vérifier tous les types à CLS conformes. Vous pouvez remplacer cela pour un type ou une méthode ou quelque chose avec [CLSCompliant(false)].

55
Pieter van Ginkel

Je suppose que vous avez un type dérivé marqué comme CLSCliant mais la base n'est pas.

écrit CLS Code conformité L'exemple canonique utilise un UInt32 qui ne fait pas partie de la spécification de langue commune (CLS) - Vous devez donc utiliser Int64 pour être CLS conforme ou supprimer l'attribut (déclarer vous-même non- CLS conformes).

Besoin de plus de code pour identifier la ligne de code fautive. Plus d'infos sur l'erreur Vous obtenez.

4
Gishu