c# – 如何使用构造函数将XML反序列化到对象中,该构造函数需要XD
发布时间:2020-12-15 06:17:33 所属栏目:百科 来源:网络整理
导读:我有一个班: public class MyClass{ public MyClass(){}} 我希望能够使用XMLSeralizer直接在构造函数中对XDocument进行反序列化: public class MyClass{ private XmlSerializer _s = new XmlSerializer(typeof(MyClass)); public MyClass(){} public MyCla
我有一个班:
public class MyClass { public MyClass(){} } 我希望能够使用XMLSeralizer直接在构造函数中对XDocument进行反序列化: public class MyClass { private XmlSerializer _s = new XmlSerializer(typeof(MyClass)); public MyClass(){} public MyClass(XDocument xd) { this = (MyClass)_s.Deserialize(xd.CreateReader()); } } 除非我不允许在构造函数中分配给“this”. 这可能吗? 解决方法
不,不可能.序列化器在反序列化时创建对象.您已经创建了一个对象.而是提供一个从XDocument构造的静态方法.
public static MyClass FromXml (XDocument xd) { XmlSerializer s = new XmlSerializer(typeof(MyClass)); return (MyClass)s.Deserialize(xd.CreateReader()); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |