My question is based on this article.
Basically a class can implement a Freezable method to make sure that no properties can be changed once the object enters the Frozen
As Matt already mentioned, you can use aspect oriented programming. Another possibility is to use a technique called interception, as it is provided by the Unity application block.