最佳答案
我正在编写代码来进行 XML 序列化。
public static string SerializeToXml(object obj)
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
using (StringWriter writer = new StringWriter())
{
serializer.Serialize(writer, obj);
return writer.ToString();
}
}
如果参数是没有无参数构造函数的类的实例,它将引发异常。
例外: 例外情况: 无法序列化 因为它没有 无参数构造函数 System.Xml.Serialization. TypeDesc. CheckSupport () 在 序列化.TypeScope. GetTypeDesc (类型 类型,MemberInfo source e,Boolean DirectReference,Boolean throwOnError) 在 序列化.ModelScope.GetTypeModel (类型 类型,布尔直接引用) 系统。 Xml.Serialization Type,XmlRootAttribute 根,String 默认命名空间) 序列化.XmlSerializer. . ctor (类型 类型,String defaultName 空间) 序列化.XmlSerializer. . ctor (类型 类别)
为什么必须有一个无参数构造函数才能使 xml 序列化成功?
编辑: 感谢 cfeduk 的回答。无参数构造函数可以是私有的,也可以是内部的。