【问题标题】:Guid xml serialization & validationGuid xml 序列化和验证
【发布时间】:2020-03-31 07:51:32
【问题描述】:

在使用 XmlSerializer 序列化对象时,是否可以指定 Guid 属性应如何格式化为字符串?

伪代码:

class MyObj {
    public Guid MyProp {get; set;}
}

序列化后生成的 XML 如下所示,(Guid 没有大括号 { })

<xml...>
  ..
  <MyProp>00000000-0000-0000-000000000000</MyProp>
  ..
</xml>

Microsoft 在此处指定的 Guid 的 XSD:https://docs.microsoft.com/en-us/windows/win32/wes/eventschema-guidtype-simpletype

将大括号添加到 Guid 需要调用 .ToString("B")

有没有办法告诉 XmlSerializer 如何使用特定的 ToString 格式来格式化 Guid?

【问题讨论】:

    标签: xml serialization xsd format guid


    【解决方案1】:

    通过这样做使其正常工作:

    [XmlIgnore]
    public Guid MyProp { get; set; }
    
    [XmlElement("MyProp")]
    public string MyPropString
    {
        get => MyProp.ToString("B");
        set => MyProp = Guid.Parse(value);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 2012-02-02
      相关资源
      最近更新 更多