4

因此,问题很简单:如何从外部覆盖类的构造函数。问题本身是,我有一个已经编译的类,并且它已经有一些构造函数,但是那些程序员的白痴删除了一个构造函数,所以我现在无法对它进行 XML(de)Serialize...

所以他们所做的是:
他们改变了 Vector2(); 向量2(x,y);进入 Vector2(x=0,y=0);

但我的问题是,序列化程序并没有那么聪明地意识到他仍然可以创建类,并且更改整个代码将是一个痛苦的 * * *

4

2 回答 2

9

继承它并自己提供预期的构造函数。

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

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

// Your code:
Vector2 vector = (Vector3)XmlSerializer.Deserialize(xmlReader);
于 2010-10-27T19:47:33.830 回答
3

如果某个类被标记为部分,您可以使用您自己的部分类声明添加它:

public partial class CompiledClass
{
   public CompiledClass() { }
}
于 2010-10-27T20:14:10.343 回答