how to restrict setting a property of innerclass just from the outer class in c#
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 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: