Код: Выделить всё
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 не может быть сериализован
, поскольку у него нет
конструктора без параметров. at
System.Xml.Serialization.TypeDesc.CheckSupported()
at
System.Xml.Serialization.TypeScope.GetTypeDesc(Type
type, MemberInfo source, Boolean
DirectReference, Boolean throwOnError)
at
System.Xml.Serialization.ModelScope.GetTypeModel (тип Type
, логическая прямая ссылка) at
System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping (Type
type , XmlRootAttribute root, String
defaultNamespace) at
System.Xml.Serialization.XmlSerializer..ctor(Type
type, String defaultName space) at
System.Xml.Serialization.XmlSerializer..ctor(Type
type)
Почему в порядке должен быть конструктор без параметров чтобы обеспечить успешную сериализацию XML?
РЕДАКТИРОВАТЬ: спасибо за ответ cfeduke. Конструктор без параметров может быть частным или внутренним.
Подробнее здесь: https://stackoverflow.com/questions/267 ... onstructor
Мобильная версия