Со следующей структурой:
public class OuterClass {
public InnerClass foo {get; private set}
public OuterClass() {
foo = new InnerClass()
}
public class InnerClass {
sometype somevar;
public InnerClass()
}
}
Как доступ к внутреннему конструктору класса ограничен третьим классом так:
OuterClass outerclassinstance = new OuterClass();
outerclassinstance.foo.somevar; // allowed
OuterClass.Innerclass innerclassinstance = new Outerclass.InnerClass(); // not allowed
innerclassinstance.somevar // not allowed
Если я делаю InnerClass приватным, я получаю ошибку Inconsistent accessibility для 'foo', и если я делаю foo приватным, к ней, естественно, нельзя получить доступ из третьего класса.
Возможно ли это вообще или я должен искать совершенно другое решение? Существует ли структурный шаблон проектирования, который решает эту проблему?