Não consigo encontrar o espaço para nome para usar [DataContract]
e [DataMember]
elementos. De acordo com o que eu descobri, parece que adicionar o seguinte deve ser suficiente, mas no meu caso não é.
using System;
using System.Runtime.Serialization;
Aqui está um trecho do meu código:
using System;
using System.Runtime.Serialization;
namespace MyNamespace {
[DataContract]
public class Tuple<T1, T2> {
// A custom implementation of a Tuple
//...
//...
}
}
E o erro que eu recebo:
O nome do tipo ou namespace 'DataContract' não foi encontrado (está faltando uma diretiva de uso ou uma referência de montagem?)
Não estou usando os namespaces corretos?
c#
wcf
datacontract
Otiel
fonte
fonte
Respostas:
DataContractAttribute
A classe está naSystem.Runtime.Serialization
espaço para nome.Você deve adicionar uma referência a
System.Runtime.Serialization.dll
. Essa montagem não é referenciada por padrão. Para adicionar a referência ao seu projeto, você deve ir para Referências -> Adicionar Referência no Solution Explorer e adicionar uma referência de montagem manualmente.fonte
References -> Add Reference
no Solution Explorer e adicionar uma referência de assembly ...using System.Runtime.Serialization;
. Eu acho que eu estava errado :)using
declaração? Isso parece fazer sentido para mim.http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx
DataContractAttribute está no espaço para nome System.Runtime.Serialization e você deve fazer referência a System.Runtime.Serialization.dll. Está disponível apenas em .Net> = 3
fonte
Os atributos [DataContract] e [DataMember] são encontrados no espaço para nome System.ServiceModel, que está no System.ServiceModel.dll.
System.ServiceModel usa os namespaces System e System.Runtime.Serialization para serializar os membros de dados.
fonte
No visual studio for framework .NET 4.0,
System.Runtime.Serialization
.using System.Runtime.Serialization
. E o erro não será mostrado.fonte
Primeiro, adiciono as referências ao meu modelo e depois as uso no meu código. Existem duas referências que você deve adicionar:
então, esse problema foi resolvido no meu programa. Espero que esta resposta possa ajudá-lo. Obrigado.
fonte
Resolvi esse problema adicionando C: \ Arquivos de programas (x86) \ Assemblies de referência \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Runtime.Serialization.dll na referência
fonte