title: A read only (immutable) serializeable class
body: <p>I've designed a class that has with two properties - as string type and a list of objects.  I'm loading some xml and deserializing it into an instance of the class, which works very well.  What I want is for everything about each instance to be immutable.  These classes are exposed as an API, and for integrity, I don't want values of the object to be changed.  If a programmer wants something different they should be creating new instances and setting the values then.</p>
  
  <p>Normally I would do this with the ReadOnlyCollection and readonly properties, but that messes up the deserialization.  What kinds of things can I do here?</p>