我正在IXmlSerializable一个不可变的类中实现。为了保持类不可变,我显式地实现了接口,以便隐藏方法,并使用ReadXml()封装方法的静态方法ReadXml(XmlReader reader),而是返回我的类的新实例。但是,假设该类被调用ClassA,我被迫实现的方式IXmlSerializable意味着该语句
((ClassA)((IXmlSerializable)(ClassAObject)).ReadXml(reader))
实际上改变了ClassAObject因为,在里面IXmlSerializable.ReadXml我分配给一个已经创建的对象的参数。那个存在,ClassAObject还可以被认为是不可变的吗?