次の設定をしたいと思います。
class Descriptor
{
public string Name { get; private set; }
public IList<Parameter> Parameters { get; private set; } // Set to ReadOnlyCollection
private Descrtiptor() { }
public Descriptor GetByName(string Name) { // Magic here, caching, loading, parsing, etc. }
}
class Parameter
{
public string Name { get; private set; }
public string Valuie { get; private set; }
}
XML ファイルからロードされると、構造全体が読み取り専用になります。Descriptor クラスだけが Parameter をインスタンス化できるようにしたいと思います。
これを行う 1 つの方法は、IParameter
インターフェイスを作成してからParameter
、Descriptor クラスでクラスをプライベートにすることですが、実際の使用では、パラメーターにはいくつかのプロパティがあり、それらを 2 回再定義することは避けたいと思います。
これはどういうわけか可能ですか?