개체 직렬화에 어려움을 겪고 있습니다.이 시나리오에서 Xml 여러 객체를 직렬화하는 방법은 무엇입니까?
내 시나리오를 보여 드리겠습니다. 나는 일반적인 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
클래스 그리고 실제 문제는 ConfigurationSpec
에서 파생 된 많은 Specs
을 추가 할 것이므로 수백을 의미합니다.
<Configuration>
<!-- Maybe here it'll be good specify the type -->
<ConfigurationSpec>
<Range1 X="2" Y="4" />
<Range2 X="5" Y="10" />
</ConfigurationSpec>
</Configuration>
그리고 직렬화를 위해 XmlFile에서이 모든 클래스를 작성하고 읽을 수있는 방법을 알고 싶습니다. 당신은 의심의 여지가있는 경우
, 나만큼 당신의 Configuration
클래스가 제대로 직렬화 할 ConfigurationSpec
에 대한 참조가로
샘플을 사용하여 설명 할 수 있다면 제발요? –
또 다른 의심의 여지가 내 상황에서 볼 수 있듯이 Linq에서 XmlSerialization 또는 XDocument를 직렬화하는 것이 더 낫다. –
XmlSerialization을 사용할 수있다. –