Пространство имен для [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 или ссылки на сборку?)
Я не использую правильные пространства имен?
Ответы
Ответ 1
Класс DataContractAttribute
находится в пространстве имен System.Runtime.Serialization
.
Вы должны добавить ссылку на System.Runtime.Serialization.dll
. На эту сборку по умолчанию нет ссылок. Чтобы добавить ссылку на ваш проект, вам нужно перейти в "Ссылки" → "Добавить ссылку" в обозревателе решений и добавить ссылку на сборку вручную.
Ответ 2
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx
DataContractAttribute находится в пространстве имен System.Runtime.Serialization, и вы должны ссылаться на System.Runtime.Serialization.dll. Он доступен только в .Net >= 3
Ответ 3
Атрибуты [DataContract] и [DataMember] находятся в пространстве имен System.ServiceModel, которое находится в System.ServiceModel.dll.
System.ServiceModel использует пространства имен System и System.Runtime.Serialization для сериализации данных.
Ответ 4
В visual studio для .NET Framework,
- Попробуйте добавить новую ссылку на проект.
- Вкладка .Net, поиск
System.Runtime.Serialization
.
- Теперь вы можете использовать
using System.Runtime.Serialization
. И ошибка не будет показана.
Ответ 5
Во-первых, я добавляю ссылки на мою модель, затем я использую их в своем коде. Вы должны добавить две ссылки:
с помощью System.ServiceModel;
используя System.Runtime.Serialization;
тогда эта проблема была решена в моей программе. Надеюсь, этот ответ поможет вам. Спасибо.
Ответ 6
Я решил эту проблему, добавив C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Runtime.Serialization.dll в ссылку