Dot-Net
XML 序列化中的必需屬性
例如我有類要序列化
[Serializable] class Person { [XmlAttribute("name")] string Name {get;set;} }我需要將 Name 屬性設為必需。如何在 .NET 中執行此操作?
如果屬性留空或為空,您可以使用
XmlIgnoreAttribute與模式一起引發異常。<FieldName>Specified在序列化期間,NameSpecified將檢查屬性以確定是否應呈現該欄位,因此如果 Name 屬性為空或為空,則會引發異常。class Person { [XmlElement("name")] string Name { get; set; } [XmlIgnore] bool NameSpecified { get { if( String.IsNullOrEmpty(Name)) throw new AgrumentException(...); return true; } } }
解決此問題的最佳方法是擁有一個單獨的 XSD,用於在將 XML 傳遞到
XmlSerializer. 使用 XSD 的最簡單方法XmlSerializer是從 XSD 開始,從該 XSD生成程式碼XmlSerializer並使用它來驗證 XML。