XmlSerializer未将指定属性设置为true

时间:2015-09-03 14:34:02

标签: xml visual-studio-2013 xmlserializer

使用VS 2013.
我们正在通过Web Reference消耗一些wsdl并获取ws的所有类 我们将值设置为ws层次结构属性,但该属性未序列化 我看到here属性未被序列化的一个因素是:
"它有一个公共bool FooSpecified {get; set;}属性或返回false的字段。"
因此,如果我们设置层次结构属性,它不会在XML中表示:

familyInformation = new amadeus.Fare_SellByFareSearchFareFamiliesFamilyInformation
                   {
                      fareFamilyname = "XXXX",
                      hierarchy = 2
                   }



public decimal hierarchy {
        get {
            return this.hierarchyField;
        }
        set {
            this.hierarchyField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlIgnoreAttribute()]
    public bool hierarchySpecified {
        get {
            return this.hierarchyFieldSpecified;
        }
        set {
            this.hierarchyFieldSpecified = value;
        }
    }

<familyInformation>
  <fareFamilyname>XXXX</fareFamilyname>
</familyInformation>
  

请帮助如何获取序列化属性序列化

1 个答案:

答案 0 :(得分:1)

您需要将层次结构 hierarchySpecified 设置为 true 层次结构被声明为架构中的可选属性,因此引入了 hierarchySpecified ,以便让序列化程序知道您是否要将其置于XML中(使用 true false 值。)