3 つのプロジェクトがあるとします。ライブラリと 2 つの実行可能ファイル。
どちらのプログラムもライブラリを使用します。プロジェクト 1 は、内部にクラスのインスタンスを多数作成し、それらをシリアライザーで保存します。プロジェクト 2 はそれらをロードしますが、決して変更を加えるべきではありません。
そのため、プロジェクト 2 では読み取り専用にする必要がありますが、プロジェクト 1 にはフル アクセスが必要です。どうやってそれを設計するのですか?
たとえば、ライブラリに次のクラスがあるとします。
public string Name { get; private set;}
public int Age { get; private set;}
public Person(string Name, int Age)
{
this.Name = Name;
this.Age = Age;
}
これは、読み取り専用として使用するプロジェクト 2 に最適です。
しかし、プロジェクト 1 にとっては非常に面倒です。クラス内のプロパティを 1 つだけ変更するとすぐに、まったく新しいインスタンスを作成する必要があるからです。2 つのプロパティがある場合は問題ありませんが、10 個のプロパティがある場合は非常に面倒です。プロジェクト 2 は、これらの値が const の場合でも問題ありません。
それを設計する最良の方法は何ですか?