[英]How to serialize a class with a list of custom objects?
我有两节课:
namespace Something
{
[Serializable]
public class Spec
{
public string Name { get; set; }
[XmlArray]
public List<Value> Values { get; set; }
}
[Serializable]
public class Value
{
public string Name { get; set; }
public short StartPosition { get; set; }
public short EndPosition { get; set; }
public Value(string name, short startPosition, short endPosition)
{
Name = name;
StartPosition = startPosition;
EndPosition = endPosition;
}
}
}
当我尝试序列化时
var spec = new Spec();
spec.Name = "test";
spec.Values = new List<Value> { new Value("testing", 0, 2) };
var xmls = new XmlSerializer(spec.GetType());
xmls.Serialize(Console.Out, spec);
我收到一个错误:
出现InvalidOperationException
有一个错误反映了'Something.Spec'类型
使用string
列表我没有任何问题。 我错过了一些属性吗?
如果希望Value
类可序列化,则Value
类需要具有默认构造函数。 例:
public class Value
{
public string Name { get; set; }
public short StartPosition { get; set; }
public short EndPosition { get; set; }
}
此外,您不需要[Serializable]
属性进行XML序列化, XmlSerializer类完全忽略它。
可能是您的Value
类型没有可用于在反序列化时创建实例的构造函数吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.