title: Class properties read-only outside assembly or namespace
body: <p>I have an object of a class that I want to pass to another assembly via an interface.</p>
  
  <p>Since I'm passing a reference all exposed properties, methods, etc. can be modified from outside the assembly it's been created in.</p>
  
  <p>Is there a way that I can access all exposed elements inside it's assembly (or namespace) and in other assemblies (or namespace) the elements are read-only?</p>
  
  <p>As a workaround it would also be fine to only have an assertion when writing to an element that is supposed to be read-only in the current scope.</p>