title: Setting a read-only object from a derived class
body: <p>I am writing a library that other developers in our company will use. A state machine base class has a <code>ReadOnlyCollection&lt;T&gt;</code> of allowed states, etc. Developers need to inherit from this class and set the allowed states.</p>
  
  <p>I want to limit them to initialize the <code>ReadOnlyCollection&lt;T&gt;</code> in the constructor of their derived classes and not be able to modify it later.</p>
  
  <p>If I declare the <code>ReadOnlyCollection&lt;T&gt;</code> as a read-only property in the base class, that does not work since it cannot be modified in the constructor of the derived class.</p>
  
  <p>I imagine this to be a not-so-uncommon scenario. Any elegant way to achieve this short of having developers override the <code>ReadOnlyCollection&lt;T&gt;</code>?</p>