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.InvalidOperationException : CSharpConsole.Foo에는 매개 변수가없는 생성자가 없으므로 직렬화 할 수 없습니다. System.Xml.Serialization.ModelScope.GetTypeModel (System.Xml.Serialization.ModelScope.GetTypeModel (System.Xml.Serialization.TypeScope.GetTypeDesc (Type type, MemberInfo sour e, Boolean directReference, Boolean throwOnError))에서 System.Xml.Serialization.ModelScope.GetTypeModel (Type type, System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping (Type type, XmlRootAttribute root, String defaultNamespace)의 System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping (부울 직접 참조)에서 System.Xml.Serialization의 System.Xml.Serialization.XmlSerializer..ctor (Type type, String defaultName space)입니다. XmlSerializer..ctor (유형)
XML 직렬화가 성공하려면 왜 매개 변수가없는 생성자가 있어야합니까?
편집 : cfeduke의 답변에 감사드립니다. 매개 변수가없는 생성자는 개인용 또는 내부 용일 수 있습니다.
XmlSerializer
역 직렬화에는 기본 매개 변수없는 생성자가 필요합니다.