I have the nub of the code like this:
public class OuterClass
{
public static InnerClass GetInnerClass()
{
return new InnerClass() { MyProperty = 1 };
}
public class InnerClass
{
public int MyProperty { get; set; }
}
}
what is the solution to property named MyProperty
just be settable from the InnerClass
and the OuterClass
, and out of these scopes, MyProperty
just be readonly
I'm afraid there is no access modifier which allows that. You can create
IInnerClass
interface and make the property readonly within interface declaration:There is no protection level for that.
internal
is the tightest you can use, which is limited to files in the same assembly. If you cannot make it a constructor parameter as has been proposed, you could use an interface: