Xml serileştirme yapmak için kod yazıyorum. Aşağıdaki fonksiyon ile.
public static string SerializeToXml(object obj)
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
using (StringWriter writer = new StringWriter())
{
serializer.Serialize(writer, obj);
return writer.ToString();
}
}
Argüman parametresiz yapıcısı olmayan bir sınıf örneğiyse, bir istisna atar.
İşlenmeyen Özel Durum: System.InvalidOperationException: CSharpConsole.Foo parametresiz bir kurucuya sahip olmadığı için serileştirilemiyor. System.Xml.Serialization.TypeScope.GetTypeDesc'de (Type type, MemberInfo sourc e, Boolean directReference, Boolean throwOnError) at System.Xml.Serialization.ModelScope.GetTypeModel (Type, System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping'de (Type type, XmlRootAttribute root, String defaultNamespace) System.Xml.Serialization.XmlSerializer..ctor (Type type, Dize defaultName space) öğesinde System.Xml.Serialization.XmlSerializer..ctor (Type type, String defaultName space). XmlSerializer..ctor (Tür tipi)
Neden xml serileştirmenin başarılı olmasına izin vermek için parametresiz bir kurucu olmalı?
EDIT: cfeduke cevabı için teşekkürler. Parametresiz kurucu özel veya dahili olabilir.
XmlSerializer
serileştirme için varsayılan parametresiz bir kurucu gerektirir.