Próbuję użyć DataAnnotations w moim projekcie WPF, aby określić maksymalną długość ciągów, z następującymi elementami:
using System.ComponentModel.DataAnnotations;
Jednak pojawia się błąd
Nazwa typu lub przestrzeni nazw „DataAnnotations” nie istnieje w przestrzeni nazw „System.ComponentModel” (czy brakuje odwołania do zestawu?)
Widziałem inne przykłady, gdzie DataAnnotations
nie istnieją w tej przestrzeni nazw. Używam C # 4. Czy jest jakiś powód, dla którego nie mogę tego używać? Co mogę zrobić, żeby to naprawić?
c#
wpf
data-annotations
DaveDev
źródło
źródło
System.ComponentModel
i używam w tym różnych innych komponentów. Według @Hari poniżej wydaje się, żeDataAnnotations
istnieje w swoim własnym zestawie. Myślałem, że będzie istnieć wewnątrz,System.ComponentModel
ponieważ jest w tej samej przestrzeni nazw.Odpowiedzi:
Musisz odwołać się do zestawu, w którym jest zdefiniowana ta przestrzeń nazw (domyślnie nie ma do niej odwołań w szablonach programu Visual Studio). Otwórz menedżera odniesień i dodaj odwołanie do zestawu System.ComponentModel.DataAnnotations (Eksplorator rozwiązań -> Dodaj odniesienie -> Wybierz kartę .Net -> wybierz z listy System.ComponentModel.DataAnnotations)
źródło
W przypadku korzystania z platformy .NET Core lub .NET Standard
posługiwać się:
zamiast:
źródło
dotnet add package System.ComponentModel.Annotations
Aby odwołać się do System.ComponentModel.DataAnnotations
W pliku kodu, aby mieć Using System.ComponentModel.DataAnnotations; u góry pliku, na przykład:
using System.ComponentModel.DataAnnotations;
Dodaj odwołanie .NET do projektu, klikając prawym przyciskiem myszy projekt w eksploratorze rozwiązań:
Mam nadzieję że to pomoże! To pytanie pomogło mi.
źródło
Jeśli nie masz go w odwołaniach (tak jak ja nie), możesz również dodać NuGet System.ComponentModel.Annotations, aby pobrać zestawy i rozwiązać błędy. (Dodanie go tutaj, ponieważ ta odpowiedź nadal znajduje się na górze Google dla błędu)
źródło
Miałem również ten sam problem i rozwiązałem go, dodając odniesienie w jednym z moich projektów, który nie miał wspomnianego odniesienia. Jeśli masz 2-3 projekty w swoim rozwiązaniu, sprawdź, dodając to odniesienie do innych projektów.
źródło
Użyj FrameWork w wersji 4.5 i nowszych dla swojego projektu, a następnie rozwiązuj problem, ponieważ ta przestrzeń nazw jest poniżej 4.5 i nowszych.
źródło
Zauważyłem, że nie mogę odwoływać się do System.ComponentModel.DataAnnotations z Silverlight 5 z poniższą wersją pod adresem (1). Okazało się, że zestawy Silverlight 5 nie mogą używać zestawów .NET, powoduje to błąd „Nie można dodać odwołania do System.ComponentModel.DataAnnotations, ponieważ nie zostało ono zbudowane w odniesieniu do środowiska wykonawczego Silverlight. ...” Planuję obejść ten problem przez mam nadzieję, że zainstaluję pakiet Silverlight 5 znajdujący się w (2) poniżej. Jeśli to się nie powiedzie, zaktualizuję ten post.
[UPDATE: nie powiodło się. Zainstalowałem wszystko, co dotyczy Silverlight 5 i nie mam wersji Silverlight zestawu .dll System.ComponentModel.DataAnnotations. Szkoda. AKTUALIZACJA II: Znalazłem stary plik .dll o tej nazwie z poprzedniej instalacji zestawu deweloperskiego Silverlight dla programu Visual Studio 2008 lub 2010. Dodałem ten plik i wydaje się, że „działa”, ponieważ technologia IntelliSense rozpoznaje teraz atrybuty członków klasy, takie jak
[Display(Name = "My Property Name")].
Czy to działa na wszystko inne w tym pliku .dll, nie wiem.](1)
Microsoft Visual Studio Professional 2013 Version 12.0.21005.1 REL Microsoft .NET Framework Version 4.5.51641
Zainstalowana wersja: Professional
(2) http://go.microsoft.com/fwlink/?LinkId=229318
źródło
Szukałem pomocy na ten temat, gdy natknąłem się na ten sam problem.
Chociaż poniższa odpowiedź może nie być odpowiedzią na pytanie zadane pierwotnie w 2012 roku, może być rozwiązaniem dla tych, którzy zetkną się z tym wątkiem.
Sposobem rozwiązania tego problemu jest sprawdzenie, gdzie projekt znajduje się w rozwiązaniu. Okazuje się, że dla mojego wystąpienia (próbowałem zainstalować pakiet NuGet, ale nie udało się i pojawił się wymieniony błąd), że mój plik projektu nie został uwzględniony w katalogu rozwiązania, chociaż jest wyświetlany w eksploratorze rozwiązań. Usunąłem projekt z katalogu poza zakresem i ponownie dodałem projekt, ale tym razem we właściwej lokalizacji.
źródło
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 .
źródło
Jeśli próbujesz zaktualizować program Visual Studio z vs2008 do vs2010. Twoja aplikacja korzysta z frameworku 3.5 (i nie chcesz go aktualizować), a także korzystała z usług WCF RIA BETA ... Mam złą wiadomość ... MUSISZ uaktualnić do usług WCF RIA v1 (BETA nie działa na vs2010 ) ... iz tego powodu ... musisz także zainstalować aktualizację Silverlight 4 + do frameworka 4.0
Zobacz: http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html
źródło
Zaktualizowałem Silverlight 4 do Silverlight 5 i wtedy miałem ten problem. Chociaż miałem odniesienie do „System.ComponentModel.DataAnnotations” w sekcji „References” w moim projekcie, było ono oznaczone żółtym znakiem wydajności, który wskazywał, że nie można znaleźć zestawu, do którego się odwołano. Okazało się, że właściwości odwołania „System.ComponentModel.DataAnnotations” wskazywały na „Specific Version = True”, a kiedy zmieniłem to na „Specific Version = False”, rozwiązało to problem. Kliknij prawym przyciskiem myszy zespół „System.ComponentModel.DataAnnotations” w sekcji „References” i wybierz „Właściwości” z menu kontekstowego. Sprawdź, czy wartość właściwości „Określona wersja = Fałsz”.
Musiał odnosić się do starego zestawu Silverlight 4, który nie był już dostępny po aktualizacji do Silverlight 5.
źródło
System.ComponentModel.DataAnnotations jest zawarta w swoim własnym zestawie, więc musisz się upewnić, że jest to odniesienie. Po prostu:
1). Kliknij prawym przyciskiem myszy Soloution i wybierz dodaj.
2). Wybierz referencję z listy.
3). Wyszukaj „System.ComponentModel.DataAnnotation” i zaznacz pole wyboru po jego lewej stronie i naciśnij OK.
Praca wykonana, nie powinno mieć żadnych błędów referencyjnych.
źródło
Ja też mam ten problem. To bardzo głupie, gdy dodaję przestrzeń nazw taką samą, jak System. Próbuję usunąć wszystkie odniesienia, ale nie zostało to rozwiązane. Używam "global :: System.ComponentModel", to też działa. Problem został rozwiązany po usunięciu mojej przestrzeni nazw.
źródło
Miałem ten sam problem, rozwiązałem ten problem podążając drogą.
Kliknij stronę prawym przyciskiem myszy i wybierz opcję Właściwość. w akcji kompilacji wybierz Zawartość.
Mam nadzieję, że to rozwiązanie może ci pomóc.
źródło