using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace ButcherFactory.SegmentProductionAuto_ { [XmlType("KeyValue"), XmlRoot("KeyValue")] public class SerializableKeyValuePair { public TKey Key { get; set; } public TValue Value { get; set; } } public static class SerializableKeyValuePairExtensions { public static SerializableKeyValuePair ToSerializablePair(this KeyValuePair pair) { return new SerializableKeyValuePair { Key = pair.Key, Value = pair.Value }; } } public class WeightDetails { [XmlIgnore] public Dictionary> Cache { get; set; } [XmlArray("Cache")] public SerializableKeyValuePair>[] CacheArray { get { return Cache == null ? null : Cache.Select(p => p.ToSerializablePair()).ToArray(); } set { Cache = value == null ? null : value.ToDictionary(p => p.Key, p => p.Value); } } } }