Пространство имен для [DataContract]

Я не могу найти пространство имен для [DataContract] и [DataMember] элементы. Согласно тому, что я нашел, кажется, что добавления следующего должно быть достаточно, но в моем случае это не так.

using System;
using System.Runtime.Serialization;

вот фрагмент моего кода:

using System;
using System.Runtime.Serialization;

namespace MyNamespace {

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

и ошибка, которую я получаю:

не удалось найти тип или имя пространства имен "DataContract" (отсутствует директива using или ссылка на сборку?)

Я не использую правильные пространства имен?

5 ответов


DataContractAttribute класса в System.Runtime.Serialization пространство имен.

вы должны добавить ссылку System.Runtime.Serialization.dll. Однако на эту сборку по умолчанию не ссылаются. Чтобы добавить ссылку на проект, вам нужно перейти в References - > Add Reference в обозревателе решений и добавить ссылку на сборку вручную.


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

DataContractAttribute находится в системе.Во время выполнения.Пространство имен сериализации и вы должны ссылаться на систему.Во время выполнения.Сериализация.файл DLL. Он доступен только в .Net >= 3


[DataContract] и [DataMember] атрибут находятся в системе.Servicemodel пространство имен, которое находится в системе.Средство servicemodel.файл DLL.


в visual studio для .NET 4.0 framework,

  1. пытаемся добавить новую ссылку на проект.
  2. На Вкладке .Net, Поиск System.Runtime.Serialization.
  3. теперь вы можете использовать using System.Runtime.Serialization. И ошибка не будет показана.

сначала я добавляю ссылки на свою модель, затем использую их в своем коде. Есть две ссылки, которые вы должны добавить:

использование системы.Средство servicemodel;
использование системы.Во время выполнения.Сериализация;

затем эта проблема была решена в мою программу. Надеюсь, этот ответ поможет вам. Спасибо.