Ich versuche, DataAnnotations in meinem WPF-Projekt zu verwenden, um eine maximale Länge von Zeichenfolgen anzugeben:
using System.ComponentModel.DataAnnotations;
Ich erhalte jedoch den Fehler
Der Typ- oder Namespace-Name 'DataAnnotations' ist im Namespace 'System.ComponentModel' nicht vorhanden (fehlt Ihnen eine Assemblyreferenz?)
Ich habe andere Beispiele gesehen , wo DataAnnotations
sie in diesem Namensraum existiert. Ich benutze C # 4. Gibt es einen Grund, warum ich das nicht verwenden kann? Was kann ich tun, um das Problem zu beheben?
c#
wpf
data-annotations
DaveDev
quelle
quelle
System.ComponentModel
und verwende dabei verschiedene andere Komponenten. Laut @Hari unten scheint es, dassDataAnnotations
es in einer eigenen Assembly existiert. Ich dachte, es würde innerhalb existieren,System.ComponentModel
da es sich im selben Namespace befindet.Antworten:
Sie müssen auf die Assembly verweisen, in der dieser Namespace definiert ist (in den Visual Studio-Vorlagen wird standardmäßig nicht darauf verwiesen). Öffnen Sie Ihren Referenzmanager und fügen Sie einen Verweis auf die Assembly System.ComponentModel.DataAnnotations hinzu (Lösungs-Explorer -> Referenz hinzufügen -> Registerkarte .Net auswählen -> System.ComponentModel.DataAnnotations aus der Liste auswählen).
quelle
Bei Verwendung von .NET Core oder .NET Standard
verwenden:
anstatt:
quelle
dotnet add package System.ComponentModel.Annotations
Referenzieren von System.ComponentModel.DataAnnotations
In einer Codedatei mit Using System.ComponentModel.DataAnnotations; am Anfang der Datei wie:
Fügen Sie Ihrem Projekt einen .NET-Verweis hinzu, indem Sie im Solution Explorer mit der rechten Maustaste auf das Projekt klicken:
Hoffe das hilft! Diese Frage hat mir geholfen.
quelle
Wenn Sie es nicht in Referenzen haben (wie ich es nicht getan habe), können Sie auch NuGet System.ComponentModel.Annotations hinzufügen, um die Assemblys abzurufen und die Fehler zu beheben. (Fügen Sie es hier hinzu, da diese Antwort für den Fehler immer noch oben auf Google steht.)
quelle
Ich hatte auch das gleiche Problem und löste es, indem ich die Referenz in eines meiner Projekte einfügte, das die erwähnte Referenz nicht hatte. Wenn Ihre Lösung 2-3 Projekte enthält, überprüfen Sie dies, indem Sie diesen Verweis zu den anderen Projekten hinzufügen.
quelle
Verwenden Sie FrameWork Version 4.5 und höher für Ihr Projekt, um das Problem zu beheben. Dieser Namespace befindet sich unter 4.5 und höher.
quelle
Ich habe festgestellt, dass ich nicht auf System.ComponentModel.DataAnnotations aus Silverlight 5 mit der folgenden Version unter (1) verweisen kann. Ich habe festgestellt, dass Silverlight 5-Assemblys keine .NET-Assemblys verwenden können. Es wird der Fehler "Sie können keinen Verweis auf System.ComponentModel.DataAnnotations hinzufügen, da es nicht für die Silverlight-Laufzeit erstellt wurde. ..." angezeigt. Ich habe vor, dies zu umgehen Hoffentlich wird das Silverlight 5-Paket unter (2) unten installiert. Wenn dies fehlschlägt, werde ich diesen Beitrag aktualisieren.
[UPDATE: Es ist fehlgeschlagen. Ich habe alles in Bezug auf Silverlight 5 installiert und habe nicht die Silverlight-Version der DLL-Assembly System.ComponentModel.DataAnnotations. Schade. UPDATE II: Ich habe eine alte DLL mit diesem Namen aus einer früheren Installation des Silverlight-Entwicklerkits für Visual Studio 2008 oder 2010 gefunden. Ich habe diese Datei hinzugefügt und sie scheint zu funktionieren, da IntelliSense jetzt Attribute für Klassenmitglieder erkennt. sowie
[Display(Name = "My Property Name")].
Ob dies für alles andere in dieser DLL funktioniert oder nicht, weiß ich nicht.](1)
Installierte Version: Professional
(2) http://go.microsoft.com/fwlink/?LinkId=229318
quelle
Ich habe zu diesem Thema nach Hilfe gesucht, als ich auf dasselbe Problem gestoßen bin.
Obwohl das Folgende möglicherweise nicht die Antwort auf die ursprünglich 2012 gestellte Frage ist, ist es möglicherweise eine Lösung für diejenigen, die auf diesen Thread stoßen.
Eine Möglichkeit , dies zu lösen, besteht darin, zu überprüfen, wo sich Ihr Projekt in der Lösung befindet. Es stellte sich für meine Instanz heraus (ich habe versucht, ein NuGet-Paket zu installieren, dies war jedoch nicht der Fall, und der aufgeführte Fehler trat auf), dass meine Projektdatei nicht im Lösungsverzeichnis enthalten war, obwohl sie im Lösungs-Explorer angezeigt wurde. Ich habe das Projekt aus dem Verzeichnis außerhalb des Gültigkeitsbereichs gelöscht und das Projekt erneut hinzugefügt, diesmal jedoch an der richtigen Stelle.
quelle
quelle
Wenn Sie versucht haben, Visual Studio von vs2008 auf vs2010 zu aktualisieren. Und Ihre App verwendet Framework 3.5 (und Sie möchten es nicht aktualisieren) und auch WCF RIA Services BETA ... Ich habe schlechte Nachrichten ... Sie MÜSSEN auf WCF RIA Services v1 aktualisieren (BETA funktioniert nicht unter vs2010) ) ... und aus diesem Grund ... müssen Sie auch das Silverlight 4 + Upgrade auf Framework 4.0 installieren
Siehe dies: http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html
quelle
Ich habe ein Upgrade von Silverlight 4 auf Silverlight 5 durchgeführt und hatte dann dieses Problem. Obwohl ich in meinem Projekt unter "Referenzen" einen Verweis auf "System.ComponentModel.DataAnnotations" hatte, hatte er ein gelbes Ertragszeichen, das darauf hinwies, dass die zuvor referenzierte Assembly nicht gefunden werden konnte. Es stellte sich heraus, dass die Eigenschaften der Referenz "System.ComponentModel.DataAnnotations" "Spezifische Version = Wahr" angaben. Als ich dies in "Spezifische Version = Falsch" änderte, wurde das Problem behoben. Klicken Sie mit der rechten Maustaste auf die Assembly "System.ComponentModel.DataAnnotations" unter "Referenzen" und wählen Sie "Eigenschaften" aus dem Kontextmenü. Überprüfen Sie, ob der Eigenschaftswert für "Spezifische Version = Falsch" ist.
Es muss auf die alte Silverlight 4-Assembly verwiesen haben, die nach dem Upgrade auf Silverlight 5 nicht mehr verfügbar war.
quelle
System.ComponentModel.DataAnnotations ist in einer eigenen Assembly enthalten, daher müssen Sie sicherstellen, dass Sie es referenziert haben. Einfach einfach:
1). Klicken Sie mit der rechten Maustaste auf Soloution und wählen Sie Hinzufügen.
2). Wählen Sie eine Referenz aus der Liste.
3). Suchen Sie nach "System.ComponentModel.DataAnnotation" und aktivieren Sie das Kontrollkästchen auf der linken Seite und drücken Sie OK.
Arbeit erledigt, sollte keine Referenzfehler haben.
quelle
Ich habe auch dieses Problem. Das ist sehr dumm, wenn ich mit System einen gleichen Namespace hinzufüge. Ich versuche alle Referenzen zu entfernen, aber es ist nicht gelöst. Ich benutze "global :: System.ComponentModel", es funktioniert auch. Wenn ich meinen Namespace entferne, wurde dieses Problem behoben.
quelle
Ich hatte das gleiche Problem, ich löste dieses Problem auf folgende Weise.
Klicken Sie mit der rechten Maustaste auf die Seite und wählen Sie Eigenschaft. Wählen Sie in der Build-Aktion Inhalt aus.
Hoffe, dass diese Lösung Ihnen helfen kann.
quelle