Нужно ли украшать пользовательские объекты [DataContract]
и [DataMember]
при использовании общих сборок (в отличие от генерации автоматического прокси)?DataContractAttribute с общей сборкой
Я спрашиваю, что я столкнулся следующий сценарий:
Предположим, что следующий объект реализуется в моей службы:
public class baseClass
{
Guid _guid;
public baseClass()
{
_guid = Guid.NewGuid()
}
public Guid ReturnGuid { get {return _guid;}}
}
public class newClass : baseClass
{
int _someValue;
public newClass {}
public int SomeValue
{
get {return _someValue;}
set {_someValue = value;}
}
}
[ServiceContract]
public IService
{
[OperationContract]
newClass SomeOperation();
}
В моем клиенте (с общими узлами) я могу с радостью принимать и используйте сериализованный newClass, когда вызывается SomeOperation, хотя я не отмечен как DataContract.
Однако, как только я помечаю его DataContract и использую DataMember, он жалуется, что набор не реализован в ReturnGuid в базовом классе.
Может кто-нибудь объяснить, почему он отлично работает, когда я не украшаю DataContract и DataMember.
Большое спасибо.
Что такое причины использования этих атрибутов, даже если нам это не нужно? –