Я пытаюсь использовать DataAnnotations в своем проекте WPF, чтобы указать максимальную длину строк со следующим:
using System.ComponentModel.DataAnnotations;
Однако я получаю сообщение об ошибке
Имя типа или пространства имен DataAnnotations не существует в пространстве имен System.ComponentModel (отсутствует ссылка на сборку?)
Я видел другие примеры, когда DataAnnotations
они существуют в этом пространстве имен. Я использую C # 4. Есть ли причина, по которой я не могу это использовать? Что я могу сделать, чтобы это исправить?
c#
wpf
data-annotations
ДэйвДев
источник
источник
System.ComponentModel
и использую в ней различные другие компоненты. Согласно @Hari ниже, похоже, чтоDataAnnotations
существует в своей собственной сборке. Я думал, что он будет существовать внутри,System.ComponentModel
поскольку находится в том же пространстве имен.Ответы:
Вы должны сослаться на сборку, в которой определено это пространство имен (по умолчанию на него нет ссылок в шаблонах Visual Studio). Откройте диспетчер ссылок и добавьте ссылку на сборку System.ComponentModel.DataAnnotations (Обозреватель решений -> Добавить ссылку -> выберите вкладку .Net -> выберите из списка System.ComponentModel.DataAnnotations)
источник
При использовании .NET Core или .NET Standard
использование:
вместо того:
источник
dotnet add package System.ComponentModel.Annotations
Ссылка на System.ComponentModel.DataAnnotations
В файле кода иметь Using System.ComponentModel.DataAnnotations; в верхней части файла, например:
using System.ComponentModel.DataAnnotations;
Добавьте ссылку .NET в свой проект, щелкнув проект правой кнопкой мыши в проводнике решений:
Надеюсь это поможет! Этот вопрос мне помог.
источник
Если у вас его нет в ссылках (например, у меня), вы также можете добавить NuGet System.ComponentModel.Annotations, чтобы получить сборки и устранить ошибки. (Добавление его здесь, поскольку этот ответ все еще находится на вершине Google для ошибки)
источник
У меня также была такая же проблема, и я решил, добавив ссылку в один из моих проектов, в котором не было упомянутой ссылки. Если в вашем решении есть 2-3 проекта, проверьте, добавив эту ссылку в другие проекты.
источник
Используйте FrameWork версии 4.5 и выше для своего проекта, тогда проблема будет решена, потому что это пространство имен ниже 4.5 и выше.
источник
Я обнаружил, что не могу ссылаться на System.ComponentModel.DataAnnotations из Silverlight 5 с версией ниже в (1). Я обнаружил, что сборки Silverlight 5 не могут использовать сборки .NET, это дает ошибку «Вы не можете добавить ссылку на System.ComponentModel.DataAnnotations, поскольку она не была создана для среды выполнения Silverlight ...» Я планирую исправить это, надеюсь установить пакет Silverlight 5, который можно найти в (2) ниже. Если это не поможет, я обновлю этот пост.
[ОБНОВЛЕНИЕ: это не удалось. Я установил все, что касается Silverlight 5, и у меня нет версии Silverlight сборки .dll System.ComponentModel.DataAnnotations. Очень жаль. ОБНОВЛЕНИЕ II: я обнаружил старую .dll с таким именем из предыдущей установки комплекта разработчика Silverlight для Visual Studio 2008 или 2010. Я добавил этот файл, и он, похоже, «работает», поскольку теперь IntelliSense распознает атрибуты членов класса, например, работает
[Display(Name = "My Property Name")].
ли это для всего остального в этой .dll, я не знаю.](1)
Microsoft Visual Studio Professional 2013 Version 12.0.21005.1 REL Microsoft .NET Framework Version 4.5.51641
Установленная версия: Professional
(2) http://go.microsoft.com/fwlink/?LinkId=229318
источник
Я искал помощь по этой теме, так как столкнулся с той же проблемой.
Хотя нижеследующее может не быть ответом на вопрос, первоначально заданный в 2012 году, это может быть решением для тех, кто сталкивается с этой веткой.
Способ решить эту проблему - проверить, где находится ваш проект в решении. Оказывается, для моего экземпляра (я пытался установить пакет NuGet, но этого не произошло, и возникла указанная ошибка), мой файл проекта не был включен в каталог решения, хотя он отображается в проводнике решений. Я удалил проект из каталога вне области видимости и повторно добавил проект, но на этот раз в правильном месте.
источник
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 .
источник
Если вы пытались обновить Visual Studio с vs2008 до vs2010. И ваше приложение использует framework 3.5 (и вы не хотите его обновлять), а также использовало WCF RIA Services BETA ... У меня плохие новости ... вы ДОЛЖНЫ перейти на WCF RIA Services v1 (BETA не работает на vs2010 ) ... и в связи с этим ... вам также необходимо установить Silverlight 4 + обновление до framework 4.0
Смотрите это: http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html
источник
Я обновился с Silverlight 4 до Silverlight 5, и тогда у меня возникла эта проблема. Хотя у меня была ссылка на «System.ComponentModel.DataAnnotations» в разделе «Ссылки» в моем проекте, у него был желтый знак уступки, означающий, что ранее указанная сборка не может быть найдена. Оказалось, что в свойствах ссылки «System.ComponentModel.DataAnnotations» указано «Specific Version = True», когда я изменил это значение на «Specific Version = False», проблема была решена. Щелкните правой кнопкой мыши сборку «System.ComponentModel.DataAnnotations» в разделе «Ссылки» и выберите «Свойства» в контекстном меню. Убедитесь, что значение свойства "Specific Version = False".
Должно быть, он ссылался на старую сборку Silverlight 4, которая больше не была доступна после обновления до Silverlight 5.
источник
System.ComponentModel.DataAnnotations содержится в собственной сборке, поэтому вам нужно убедиться, что на нее есть ссылка. Просто:
1). Щелкните правой кнопкой мыши на Soloution и выберите "Добавить".
2). Выберите ссылку из списка.
3). Найдите "System.ComponentModel.DataAnnotation", установите флажок слева и нажмите ОК.
Работа выполнена, ошибок ссылок быть не должно.
источник
У меня тоже такая проблема. Это очень глупо, когда я добавляю пространство имен так же, как и System. Я пытаюсь удалить все ссылки, но это не решается. Я использую global :: System.ComponentModel, он тоже работает. Когда я удаляю свое пространство имен, эта проблема решена.
источник
У меня была такая же проблема, я решил эту проблему следующим образом.
Щелкните страницу правой кнопкой мыши и выберите «Свойство». в действии сборки выберите Content.
Надеюсь, что это решение может вам помочь.
источник