124 votes

Pourquoi ne puis-je pas faire référence à System.ComponentModel.DataAnnotations ?

J'essaie d'utiliser les DataAnnotations dans mon projet WPF pour spécifier une longueur maximale pour les chaînes de caractères, avec ce qui suit :

using System.ComponentModel.DataAnnotations;

Cependant, j'obtiens l'erreur suivante

Le nom du type ou de l'espace de noms "DataAnnotations" n l'espace de noms 'System.ComponentModel' (manque-t-il un assembly référence d'assemblage ?)

J'ai vu d'autres exemples où DataAnnotations fait existent dans cet espace de noms. J'utilise C#4. Y a-t-il une raison pour laquelle je ne peux pas l'utiliser ? Que puis-je faire pour y remédier ?

0voto

dosnetCore Points 25

Pour .Net Core dans Visual Studio 2019, essayez ceci. voir suggestion VS

Cela a fonctionné pour moi, j'espère que cela fonctionnera aussi pour vous.

0voto

alamoot Points 700

Je suis passé de .Net Framework 4.7.2 à .Net Standard 2.0.

Dans mon cas, j'ai dû modifier DataAnnotations d'une référence Assembly à une référence Nuget.

0voto

Si vous rencontrez à nouveau ce problème dans Visual 2022, vous pouvez essayer cette solution (elle a fonctionné pour moi) :

Il suffit d'ajouter :

using RequiredAttribute = System.ComponentModel.DataAnnotations.RequiredAttribute;  

J'espère que cela vous conviendra également. Bonne chance =)))))

-1voto

User Points 84
This error occurs when the reference to the "System.dll" got removed.Solution to the problem is very simple add the reference to "System.dll".The dll is normally available in the following location
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" .Add the reference your problem will get solved .

-1voto

Ivan Silkin Points 95

Il y avait un problème avec l'utilisation de System.ComponentModel.DataAnnotation dans net40, alors je l'ai fait :

#if !NET40
    using System.ComponentModel.DataAnnotations;
#endif

#if !NET40
        [StringLength(256)]
#endif

Le NET40 doit être une macro-définition prédéfinie pour .Net Framework 4.0.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X