インスタンス化されたオブジェクトをそのすべてのパブリック プロパティとともに不変にする方法はありますか (リフレクションを利用することを願っています) 。私は利用する必要がある他の誰かのコードベース (利用可能なソースがない) からのクラスを持っています。インスタンス化された後、どこかのコードがこのクラス内でパブリック セッターを呼び出そうとすると、基本的に例外がスローされます。
注: これを実装するために、クラスの周りにラッパー オブジェクトを作成したくありません。私は怠け者です。
インスタンス化されたオブジェクトをそのすべてのパブリック プロパティとともに不変にする方法はありますか (リフレクションを利用することを願っています) 。私は利用する必要がある他の誰かのコードベース (利用可能なソースがない) からのクラスを持っています。インスタンス化された後、どこかのコードがこのクラス内でパブリック セッターを呼び出そうとすると、基本的に例外がスローされます。
注: これを実装するために、クラスの周りにラッパー オブジェクトを作成したくありません。私は怠け者です。
ラッパー クラスで簡単に解決できることを行うためにリフレクション コードを導入する意思があるとは信じがたいと思います。
今の時間を少し投資するだけで、後でリフレクション コードが壊れたり変更が必要になったりしたときに、多くの時間を節約できます。ラッパー クラスは単純で、実装が容易で、タイプ セーフであり、今後他の開発者にとって意味のあるものになります。怠惰にアーキテクチャの選択を決定させないでください。
いいえ、リフレクション経由ではありません。型定義はリフレクションを介して実行時に変更できないため、型を不変にするためのデバイスとして使用することはできません。
ただし、リフレクションを使用して、型の不変性を侵害することができます。たとえば、コンストラクターが実行された後でも、リフレクションを介して読み取り専用でマークされたプロパティを設定することができます。