我有一个班:
public class MyClass { public MyClass(){} }@H_403_4@我希望能够使用XMLSeralizer直接在构造函数中对XDocument进行反序列化:
public class MyClass { private XmlSerializer _s = new XmlSerializer(typeof(MyClass)); public MyClass(){} public MyClass(XDocument xd) { this = (MyClass)_s.Deserialize(xd.CreateReader()); } }@H_403_4@除非我不允许在构造函数中分配给“this”. @H_403_4@这可能吗?
解决方法
@H_502_15@ 不,不可能.序列化器在反序列化时创建对象.您已经创建了一个对象.而是提供一个从XDocument构造的静态方法.public static MyClass FromXml (XDocument xd) { XmlSerializer s = new XmlSerializer(typeof(MyClass)); return (MyClass)s.Deserialize(xd.CreateReader()); }