J'essaie d'utiliser DataAnnotations dans mon projet WPF pour spécifier une longueur maximale de chaînes, avec ce qui suit:
using System.ComponentModel.DataAnnotations;
Cependant, j'obtiens l'erreur
Le type ou le nom d'espace de noms 'DataAnnotations' n'existe pas dans l'espace de noms 'System.ComponentModel' (vous manquez une référence d'assembly?)
Je l' ai vu d' autres exemples n'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 le réparer?DataAnnotations
c#
wpf
data-annotations
DaveDev
la source
la source
System.ComponentModel
et j'utilise divers autres composants. Selon @Hari ci-dessous, il semble qu'ilDataAnnotations
existe dans son propre assemblage. Je pensais qu'il existerait à l'intérieurSystem.ComponentModel
car il est dans le même espace de noms.Réponses:
Vous devez référencer l'assembly dans lequel cet espace de noms est défini (il n'est pas référencé par défaut dans les modèles de Visual Studio). Ouvrez votre gestionnaire de références et ajoutez une référence à l'assembly System.ComponentModel.DataAnnotations (Explorateur de solutions -> Ajouter une référence -> Sélectionnez l'onglet .Net -> sélectionnez System.ComponentModel.DataAnnotations dans la liste)
la source
Si vous utilisez .NET Core ou .NET Standard
utilisation:
au lieu de:
la source
dotnet add package System.ComponentModel.Annotations
Pour référencer System.ComponentModel.DataAnnotations
Dans un fichier de code pour avoir Using System.ComponentModel.DataAnnotations; en haut du fichier comme:
Ajoutez une référence .NET à votre projet en cliquant avec le bouton droit sur le projet dans l'explorateur de solutions:
J'espère que cela t'aides! Cette question m'a aidé.
la source
Si vous ne l'avez pas dans les références (comme je ne l'ai pas fait), vous pouvez également ajouter le NuGet System.ComponentModel.Annotations pour obtenir les assemblys et résoudre les erreurs. (L'ajout ici car cette réponse est toujours en haut de Google pour l'erreur)
la source
J'ai également eu le même problème et j'ai résolu en ajoutant la référence dans l'un de mes projets qui n'avait pas la référence mentionnée. Si vous avez 2-3 projets dans votre solution, vérifiez en ajoutant cette référence aux autres projets.
la source
Utilisez la version 4.5 et supérieure de FrameWork pour votre projet, puis le problème est résolu, car cet espace de noms est inférieur à 4.5 et supérieur.
la source
J'ai trouvé que je ne peux pas référencer System.ComponentModel.DataAnnotations de Silverlight 5 avec la version ci-dessous à (1). J'ai trouvé que les assemblages Silverlight 5 ne peuvent pas utiliser les assemblages .NET, cela donne l'erreur "Vous ne pouvez pas ajouter une référence à System.ComponentModel.DataAnnotations car il n'a pas été construit avec le runtime Silverlight. ..." Je prévois de contourner ce problème en j'espère installer le package Silverlight 5 trouvé à (2) ci-dessous. Si cela échoue, je mettrai à jour ce message.
[MISE À JOUR: il a échoué. J'ai installé tout ce qui concerne Silverlight 5 et je n'ai pas la version Silverlight de l'assembly .dll System.ComponentModel.DataAnnotations. Dommage. MISE À JOUR II: J'ai trouvé un ancien .dll portant ce nom d'une installation précédente du kit de développement Silverlight pour Visual Studio 2008 ou 2010. J'ai ajouté ce fichier et il semble `` fonctionner '', dans la mesure où IntelliSense reconnaît maintenant les attributs des membres de la classe, tel que
[Display(Name = "My Property Name")].
si cela fonctionne ou non pour tout le reste de ce fichier .dll, je ne sais pas.](1)
Version installée: Professionnel
(2) http://go.microsoft.com/fwlink/?LinkId=229318
la source
J'ai cherché de l'aide sur ce sujet car je suis tombé sur le même problème.
Bien que ce qui suit ne soit pas la réponse à la question posée à l'origine en 2012, cela peut être une solution pour ceux qui rencontrent ce fil.
Une façon de résoudre ce problème est de vérifier où se situe votre projet dans la solution. Il s'est avéré que pour mon instance (j'essayais d'installer un package NuGet mais ce ne serait pas le cas et l'erreur répertoriée s'est produite) que mon fichier de projet n'était pas inclus dans le répertoire de la solution bien qu'il soit affiché dans l'explorateur de solutions. J'ai supprimé le projet du répertoire hors de portée et j'ai rajouté le projet, mais cette fois dans le bon emplacement.
la source
la source
Si vous avez essayé de mettre à jour Visual Studio de vs2008 à vs2010. Et votre application utilise le framework 3.5 (et vous ne voulez pas le mettre à niveau), et a également utilisé les services WCF RIA BETA ... J'ai de mauvaises nouvelles ... vous DEVEZ passer à WCF RIA Services v1 (BETA ne fonctionne pas sur vs2010 ) ... et pour cette raison ... vous devez également installer la mise à niveau de Silverlight 4 + vers le framework 4.0
Voir ceci: http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html
la source
Je suis passé de Silverlight 4 à Silverlight 5 et j'ai eu ce problème. Bien que j'aie eu une référence à «System.ComponentModel.DataAnnotations» sous «Références» dans mon projet, il y avait un signe de rendement jaune qui indiquait que l'assembly précédemment référencé était introuvable. 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", cela a résolu le problème. Cliquez avec le bouton droit 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é pour "Version spécifique = False".
Il devait faire référence à l'ancien assemblage Silverlight 4 qui n'était plus disponible après la mise à niveau vers Silverlight 5.
la source
System.ComponentModel.DataAnnotations est contenu dans son propre assembly, vous devez donc vous assurer que vous l'avez référencé. Tout simplement:
1). Faites un clic droit sur Soloution et choisissez ajouter.
2). Choisissez une référence dans la liste.
3). Recherchez «System.ComponentModel.DataAnnotation» et cochez la case à sa gauche et appuyez sur OK.
Travail fait, ne devrait pas avoir d'erreurs de référence.
la source
J'ai aussi ce problème. C'est très stupide quand j'ajoute un espace de noms identique avec System. J'essaye de supprimer toutes les références, mais ce n'est pas résolu. J'utilise "global :: System.ComponentModel", cela fonctionne aussi. Lorsque je supprime mon espace de noms, ce problème a été résolu.
la source
J'ai eu le même problème, j'ai résolu ce problème de la manière suivante.
Faites un clic droit sur la page, sélectionnez Propriété. dans l'action de construction, sélectionnez Contenu.
J'espère que cette solution pourra vous aider.
la source