Подтвердить что ты не робот

WCF Datacontract - Поддерживает ли он элемент данных с возможностью NULL?

    [DataMember]
    public int? NumberOfPages;   //////////// Is this supported????
    [DataMember]
    public bool? Color;          //////////// Is this supported????
    [DataMember]
    public int? BulkQuantity;
    [DataMember]
4b9b3361

Ответ 1

Да, конечно!

У вас не должно возникнуть никаких проблем с созданием элементов с возможностью сбрасывания данных, они будут обрабатываться в результате WSDL/XSD как члены "xs: nillable = true". Нет проблем.

Ответ 3

@Кахон и Батвад:

Мы решили эту проблему, используя тип nullable<> или ? в два этапа:

  • В классе, содержащем общее поле, определите поле следующим образом:

    nullable<GenType> MyField {get; set;}
    
  • В контракте данных, который использует этот базовый класс, вы можете определить, какие элементы известны сериализатору/десериализатору, используя теги, похожие на аннотации. Здесь мы определили, например:

    [Serializable]
    [DataContract]
    [KnownType(typeof(BaseClass<nullable<DateTime>>))]
    

    Вместо BaseClass<nullable<DateTime>> вы можете использовать BaseClass<DateTime?>, я думаю.

После этого сериализация общих нулевых значений сработала для нас.