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