Make items XML serializable

This commit is contained in:
Matt Nadareski
2020-09-07 22:00:02 -07:00
parent d70415b989
commit 60818dba00
39 changed files with 523 additions and 94 deletions

View File

@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Xml.Serialization;
using SabreTools.Library.Filtering;
using SabreTools.Library.Tools;
@@ -12,6 +13,7 @@ namespace SabreTools.Library.DatItems
/// Represents the a feature of the machine
/// </summary>
[JsonObject("feature")]
[XmlRoot("feature")]
public class Feature : DatItem
{
#region Fields
@@ -21,22 +23,34 @@ namespace SabreTools.Library.DatItems
/// </summary>
[JsonProperty("type", DefaultValueHandling = DefaultValueHandling.Ignore)]
[JsonConverter(typeof(StringEnumConverter))]
[XmlElement("type")]
public FeatureType Type { get; set; }
[JsonIgnore]
public bool TypeSpecified { get { return Type != FeatureType.NULL; } }
/// <summary>
/// Emulation status
/// </summary>
[JsonProperty("status", DefaultValueHandling = DefaultValueHandling.Ignore)]
[JsonConverter(typeof(StringEnumConverter))]
[XmlElement("status")]
public FeatureStatus Status { get; set; }
[JsonIgnore]
public bool StatusSpecified { get { return Status != FeatureStatus.NULL; } }
/// <summary>
/// Overall status
/// </summary>
[JsonProperty("overall", DefaultValueHandling = DefaultValueHandling.Ignore)]
[JsonConverter(typeof(StringEnumConverter))]
[XmlElement("overall")]
public FeatureStatus Overall { get; set; }
[JsonIgnore]
public bool OverallSpecified { get { return Overall != FeatureStatus.NULL; } }
#endregion
#region Accessors