If your real world case is more complex than your example (?), I would consider impl state pattern rather than your enum.
<< giving the object an initialization state>> IIRC - I've seen some example at nhforge how to use a parameterized ctor, but if you want to keep your design, it's seems a lot easier mapping the fields instead. -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of David Perfors Sent: den 26 maj 2009 16:28 To: nhusers Subject: [nhusers] Loading objects with readonly state Hi, In my application I want to do the following: public enum State { Writable, Readonly } public class DomainObject { private string _name; public DomainObject() { } public int Id { get; private set; } public State State { get; set; } public string Name { get { return _name; } set { CheckState(); _name = value; } } private void CheckState() { if (State != Status.Bewerken) throw new NotSupportedException("You can't do this in readonly mode"); } } So in almost every setter that I want to check I will do this check. I can save this object with the following mapping file: <hibernate-mapping assembly="Domain" default-cascade="save-update" default-lazy="false" namespace="Domain" xmlns="urn:nhibernate-mapping-2.2"> <class name="DomainObject"> <id name="Id" type="int"> <generator class="sequence" /> </id> <property name="State" /> <property name="Name" /> </class> </hibernate-mapping> But when I have saved the DomainObject with a Readonly state I can't load it correctly because the state will prevent this. Of course I can solve this by mapping it to the field instead of the property, but I was wondering whether it is possible to do it another way, for example giving the object an initialization state which will prevent the CheckState method from throwing the exception... Any ideas? David --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
