IXmlSerializable不変クラスに実装しています。クラスを不変に保つために、メソッドを非表示にするためにインターフェイスを明示的に実装し、ReadXml()メソッドをカプセル化してReadXml(XmlReader reader)代わりにクラスの新しいインスタンスを返す静的メソッドを使用しています。ただし、クラスが呼び出されたと仮定すると、ClassA実装を余儀なくされている方法はIXmlSerializable、ステートメントが
((ClassA)((IXmlSerializable)(ClassAObject)).ReadXml(reader))
内部ではClassAObject、IXmlSerializable.ReadXml既に作成されたオブジェクトのパラメーターに割り当てています。ということは、ClassAObjectまだ不変と見なすことができますか?