Espacio de nombres para [Contrato de datos]

Resuelto Otiel asked hace 13 años • 6 respuestas

No puedo encontrar el espacio de nombres para usar [DataContract]y [DataMember]los elementos. Según lo que he encontrado, parece que agregar lo siguiente debería ser suficiente, pero en mi caso no lo es.

using System;
using System.Runtime.Serialization;

Aquí hay un fragmento de mi código:

using System;
using System.Runtime.Serialization;

namespace MyNamespace {

    [DataContract]
    public class Tuple<T1, T2> {
            // A custom implementation of a Tuple
            //...
            //...
        }
}

Y el error que me sale:

No se pudo encontrar el tipo o nombre del espacio de nombres 'DataContract' (¿falta una directiva de uso o una referencia de ensamblado?)

¿No estoy usando los espacios de nombres correctos?

Otiel avatar Sep 13 '11 19:09 Otiel
Aceptado

DataContractAttributeLa clase está en el System.Runtime.Serializationespacio de nombres.

Deberías agregar una referencia a System.Runtime.Serialization.dll. Sin embargo, no se hace referencia a ese ensamblaje de forma predeterminada. Para agregar la referencia a su proyecto, debe ir a Referencias -> Agregar referencia en el Explorador de soluciones y agregar una referencia de ensamblaje manualmente.

CD.. avatar Sep 13 '2011 12:09 CD..

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx

DataContractAttribute está en el espacio de nombres System.Runtime.Serialization y debe hacer referencia a System.Runtime.Serialization.dll. Sólo está disponible en .Net >= 3

Guillaume avatar Sep 13 '2011 12:09 Guillaume

En Visual Studio para .Net 4.0 Framework,

  1. Intente agregar una nueva referencia al proyecto.
  2. En la pestaña .Net, busque System.Runtime.Serialization.
  3. Ahora puedes usar using System.Runtime.Serialization. Y el error no se mostrará.
Md Kauser Ahmmed avatar Nov 25 '2015 12:11 Md Kauser Ahmmed

Los atributos [DataContract] y [DataMember] se encuentran en el espacio de nombres System.ServiceModel que se encuentra en System.ServiceModel.dll.

System.ServiceModel utiliza los espacios de nombres System y System.Runtime.Serialization para serializar los miembros de datos.

Jatin Khurana avatar Dec 13 '2012 16:12 Jatin Khurana