[英]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.