Serializable vs Data Contract vs вообще ничего в службе WCF - PullRequest
2 голосов
/ 22 июня 2010

Я буду использовать пример 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.Почему это?

1 Ответ

3 голосов
/ 22 июня 2010

Атрибут [DataContract] является необязательным.

Зачем тогда его использовать?Это позволяет вам контролировать то, что и как ваши данные сериализуются - например, какие свойства должны быть включены и исключены.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...