Estou tentando usar DataAnnotations em meu projeto WPF para especificar um comprimento máximo de strings, com o seguinte:
using System.ComponentModel.DataAnnotations;
No entanto, recebo o erro
O tipo ou nome do namespace 'DataAnnotations' não existe no namespace 'System.ComponentModel' (está faltando uma referência de assembly?)
Eu vi outros exemplos onde DataAnnotations
não existem neste namespace. Estou usando C # 4. Existe alguma razão pela qual eu não posso usar isso? O que posso fazer para corrigir isso?
c#
wpf
data-annotations
DaveDev
fonte
fonte
System.ComponentModel
e utilizando vários outros componentes nela. De acordo com @Hari abaixo, parece queDataAnnotations
existe em sua própria montagem. Achei que existiria dentroSystem.ComponentModel
, pois está no mesmo namespace.Respostas:
Você tem que fazer referência ao assembly no qual este namespace está definido (ele não é referenciado por padrão nos modelos do Visual Studio). Abra seu gerenciador de referência e adicione uma referência ao conjunto System.ComponentModel.DataAnnotations (explorador de soluções -> Adicionar referência -> Selecione a guia .Net -> selecione System.ComponentModel.DataAnnotations da lista)
fonte
Se estiver usando .NET Core ou .NET Standard
usar:
ao invés de:
fonte
dotnet add package System.ComponentModel.Annotations
Para fazer referência a System.ComponentModel.DataAnnotations
Em um arquivo de código para ter Using System.ComponentModel.DataAnnotations; na parte superior do arquivo, como:
Adicione uma referência .NET ao seu projeto clicando com o botão direito do mouse no projeto no explorador de soluções:
Espero que isto ajude! Essa pergunta me ajudou.
fonte
Se você não o tiver nas referências (como eu não tinha), você também pode adicionar o NuGet System.ComponentModel.Annotations para obter os assemblies e resolver os erros. (Adicionando-o aqui como esta resposta ainda no topo do Google para o erro)
fonte
Eu também tive o mesmo problema e resolvi adicionando a referência em um dos meus projetos que não tinha a referência mencionada. Se você tiver 2 a 3 projetos em sua solução, verifique adicionando essa referência aos outros projetos.
fonte
Use o FrameWork versão 4.5 e superior para o seu projeto e o problema será resolvido. Porque este namespace está abaixo de 4.5 e superior.
fonte
Descobri que não posso fazer referência a System.ComponentModel.DataAnnotations do Silverlight 5 com a versão abaixo em (1). Descobri que os assemblies do Silverlight 5 não podem usar assemblies do .NET, ele apresenta o erro "Você não pode adicionar uma referência a System.ComponentModel.DataAnnotations, pois não foi criado para o tempo de execução do Silverlight. ..." Eu pretendo contornar isso por esperançosamente instalando o pacote Silverlight 5 encontrado em (2) abaixo. Se isso falhar, irei atualizar este post.
[ATUALIZAÇÃO: falhou. Instalei tudo relacionado ao Silverlight 5 e não tenho a versão Silverlight do assembly .dll System.ComponentModel.DataAnnotations. Que pena. ATUALIZAÇÃO II: encontrei um .dll antigo com este nome de uma instalação anterior do kit de desenvolvedor do Silverlight para Visual Studio 2008 ou 2010. Eu adicionei este arquivo e parece 'funcionar', pois o IntelliSense agora está reconhecendo atributos em membros da classe, como
[Display(Name = "My Property Name")].
Se isso funciona ou não para tudo o mais neste .dll, não sei.](1)
Versão Instalada: Profissional
(2) http://go.microsoft.com/fwlink/?LinkId=229318
fonte
Procurei ajuda neste tópico quando me deparei com o mesmo problema.
Embora o seguinte possa não ser a resposta à pergunta feita originalmente em 2012, pode ser uma solução para aqueles que se deparam com este tópico.
Uma maneira de resolver isso é verificar onde seu projeto está dentro da solução. Acontece que para minha instância (eu estava tentando instalar um pacote NuGet, mas não o fez e o erro listado apareceu) que meu arquivo de projeto não foi incluído no diretório de solução, embora aparecesse no explorador de solução. Excluí o projeto do diretório fora do escopo e adicionei novamente o projeto, mas desta vez no local correto.
fonte
fonte
Se você tentou atualizar o Visual Studio de vs2008 para vs2010. E seu aplicativo usa framework 3.5 (e você não quer atualizá-lo), e também usou WCF RIA Services BETA ... Tenho más notícias ... você DEVE atualizar para WCF RIA Services v1 (BETA não funciona no vs2010 ) ... e devido a isso ... você também deve instalar o Silverlight 4 + upgrade para o framework 4.0
Veja: http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html
fonte
Eu atualizei do Silverlight 4 para o Silverlight 5 e então eu estava tendo esse problema. Embora eu tivesse uma referência a "System.ComponentModel.DataAnnotations" em "Referências" em meu projeto, havia um sinal de rendimento amarelo que indicava que o assembly referenciado anteriormente não foi encontrado. Descobri que as propriedades da referência "System.ComponentModel.DataAnnotations" indicavam "Versão Específica = Verdadeira", quando alterei para "Versão Específica = Falso", o problema foi corrigido. Clique com o botão direito no assembly "System.ComponentModel.DataAnnotations" em "Referências" e selecione "Propriedades" no menu de contexto. Verifique se o valor da propriedade para "Versão específica = False".
Deve ter feito referência ao antigo conjunto do Silverlight 4, que não estava mais disponível após a atualização para o Silverlight 5.
fonte
System.ComponentModel.DataAnnotations está contido em seu próprio assembly, portanto, você precisa ter certeza de tê-lo referenciado. Simplesmente:
1). Clique com o botão direito em Solução e escolha adicionar.
2). Escolha a referência na lista.
3). Pesquise "System.ComponentModel.DataAnnotation", marque a caixa de seleção à esquerda e pressione ok.
Trabalho concluído, não deve haver erros de referência.
fonte
Eu também tenho esse problema. Isso é muito estúpido quando adiciono um namespace igual ao System. Tento remover todas as referências, mas não foi resolvido. Eu uso "global :: System.ComponentModel", está funcionando também. Quando removo meu namespace, esse problema foi resolvido.
fonte
Tive o mesmo problema, resolvi esse problema da seguinte forma.
Clique com o botão direito na página e selecione Propriedade. na ação de construção, selecione Conteúdo.
Espero que esta solução possa ajudá-lo.
fonte