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 ?

1voto

user2090762 Points 16

Utilisez la version 4.5 et plus de FrameWork pour votre projet et le problème sera résolu, car cet espace de noms est sous la version 4.5 et plus.

1voto

System.ComponentModel.DataAnnotations est contenu dans son propre assemblage, vous devez donc vous assurer qu'il est référencé. Tout simplement :

1). Cliquez avec le bouton droit de la souris sur Soloution et choisissez d'ajouter.

2). Choisissez la référence dans la liste.

3). Rechercher " System.ComponentModel.DataAnnotation " et cocher la case à gauche et appuyer sur ok.

Le travail est fait, il ne devrait pas y avoir d'erreurs de référence.

0voto

Fernando Torres Points 41

Si vous avez essayé de mettre à jour visual studio de vs2008 à vs2010. Et que votre application utilise le framework 3.5 (et que vous ne voulez pas le mettre à jour), et qu'elle utilise également WCF RIA Services BETA... J'ai une mauvaise nouvelle... vous DEVEZ passer à WCF RIA Services v1 (BETA ne fonctionne pas sur vs2010)... et pour cette raison... vous devez également installer Silverlight 4 + passer au framework 4.0.

Voir cela : http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html

0voto

cesiumdeth Points 34

Je suis passé de Silverlight 4 à Silverlight 5 et j'ai rencontré ce problème. Bien que j'aie une référence à "System.ComponentModel.DataAnnotations" sous "References" dans mon projet, il y avait un signe jaune qui indiquait que l'assemblage précédemment référencé ne pouvait pas être trouvé. Il s'est avéré que les propriétés de la référence "System.ComponentModel.DataAnnotations" indiquaient "Specific Version = True", lorsque j'ai changé cela en "Specific Version = False", le problème a été résolu. Cliquez avec le bouton droit de la souris sur l'assemblage "System.ComponentModel.DataAnnotations" sous "Références" et sélectionnez "Propriétés" dans le menu contextuel. Vérifiez que la valeur de la propriété "Specific Version = False".

Il devait faire référence à l'ancien assemblage Silverlight 4 qui n'était plus disponible après la mise à jour vers Silverlight 5.

0voto

Henry Points 1

Je suis également confronté à ce problème. C'est très stupide lorsque j'ajoute un espace de noms identique à System. J'essaie de supprimer toutes les références, mais le problème n'est pas résolu. J'utilise "global::System.ComponentModel", cela fonctionne aussi. Lorsque je supprime mon espace de noms, le problème est résolu.

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