Я буду использовать пример Starter, данный при создании службы WCF
[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
Когда я использую DataContract, все в порядке.
Когда я использую Serializable, фактические переменные, будь то частныеили общедоступные визуально для хоста, а не свойства.Если я использую NonSerialized, он скрывает переменную, но не передается.Я понимаю, и думаю, я понимаю, почему свойства не передаются, потому что нечего сериализовать?Это правильно?
[Serializable]
public class CompositeType
{
[NonSerialized]
bool boolValue = true;
[NonSerialized]
string stringValue = "Hello ";
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
Если я не предоставлю никаких атрибутов, класс будет возвращен, как и ожидалось, и этого я не понимаю?
Мне поручено взять существующие бизнес-объекты иработать с ними через WCF?Похоже, мой лучший вариант - оставить их в покое вместо добавления атрибута DataContract.Почему это?