Мне тяжело с моим дизайном в сериализации объектов.
Позвольте мне показать вам мой сценарий.У меня есть общий класс Configuration
, и он содержит три свойства:
public sealed class Configuration
{
public Configuration(string name, Levels level, ConfigurationSpec spec)
{
this.Name = name;
this.Level = level;
this.Spec = spec;
}
public string Name { get; set; }
public Levels Level { get; set; }
public ConfigurationSpec Spec { get; set; }
}
Последнее свойство не имеет значения, потому что это абстрактный класс, и он может быть производным от других классов:
public class ConfigurationSpec { }
public class BinaryConfiguration : ConfigurationSpec
{
public Range<int> Range1 { get; set; }
public Range<int> Range2 { get; set; }
public BinaryConfiguration()
{
this.Range1 = new Range<int>();
this.Range2 = new Range<int>();
}
public BinaryConfiguration(Range<int> range1, Range<int> range2)
{
this.Range1 = range1;
this.Range2 = range2;
}
}
public class Range<T> where T : IComparable<T>
{
private T _min;
private T _max;
public Range()
{
}
public Range(T min, T max)
{
this.Min = min;
this.Max = max;
}
public T Min
{
get { return _min; }
set { _min = value; }
}
public T Max
{
get { return _max; }
set { _max = value; }
}
Все это содержит класс ConfigurationSpec
.И настоящая проблема в том, что я собираюсь добавить множество Specs
, полученных из ConfigurationSpec
, я имею в виду сотни.
<Configuration>
<!-- Maybe here it'll be good specify the type -->
<ConfigurationSpec>
<Range1 X="2" Y="4" />
<Range2 X="5" Y="10" />
</ConfigurationSpec>
</Configuration>
И я хочу знать, как я могу написать и прочитать все эти классы изXmlFile для сериализации.
Если у вас есть какие-либо сомнения, пожалуйста, дайте мне знать