从outisde覆盖类的构造函数

awi*_*tok 4 .net c# constructor overwrite

所以,问题很简单:如何从外部覆盖类的构造函数.问题本身是,我有一个已编译的类,它已经有一些构造函数,但是那些编码器的idiots删除了一个构造函数,所以我现在无法XML(de)序列化它...

所以他们做的是:
他们改变了Vector2(); Vector2(x,y); 到Vector2(x = 0,y = 0);

但我的问题是,Serializer并不是那么聪明才能意识到他仍然可以创建类,并且改变整个代码将是一个痛苦的***

Jef*_*nal 9

继承它并自己提供期望的构造函数.

您可以在代码期望Vector2实例的地方使用派生类的反序列化实例:

public class Vector3: Vector2 {
    public Vector3(): base(0, 0) {}
}

// Your code:
Vector2 vector = (Vector3)XmlSerializer.Deserialize(xmlReader);
Run Code Online (Sandbox Code Playgroud)