簡體   English   中英

在C#中的XmlElement中將true和false轉換為1和0

[英]Convert true and false to 1 and 0 in XmlElement in C#

我正在使用第三方的SOAP Web服務。 我已經使用XSD.exe工具生成了對象。 問題是我需要發送要序列化的XmlElement 他們的服務拋出錯誤,因為它期望所有boolean值都由1和0表示,而不是true和false。

我知道我可以使用這樣的自定義序列化程序: IXmlSerializable Interface或這樣: 使XmlSerializer輸出簡單類型的替代值,但是它們涉及我更改Xsd.exe工具生成的代碼,並且每次都很難維護升級。

我是否缺少某些東西,或者還有另一種方式來實現我所尋找的?

您可以使對象忽略bool值,而是使用其他變量來顯示它。 例如:

    [IgnoreDataMember, XmlIgnore]
    public bool BoolProp  { get; set; }

    /// <summary>
    ///     XML serialized BoolProp 
    /// </summary>
    [DataMember(Name = "BoolProp"]
    [XmlElement(ElementName = "BoolProp"]
    public int FormattedBoolProp 
    {
        get { 
            return BoolProp ? 1 : 0;
        }
        set { BoolProp = value==1 }
    }

這將使XML解析器忽略real屬性,而使用格式化函數。

如果不需要解析它,則可以刪除它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM