public static void SetValue <T>(OneToOneAssociation property, NakedObject target, Naked proposed)
        {
            object     valueHolder = property.get(target).getObject();
            MethodInfo m           = valueHolder.GetType().GetMethod("setValue", new[] { typeof(T) });

            m.Invoke(valueHolder, new[] { proposed.getObject() });
        }
 private void SetAssociation(OneToOneAssociation property, NakedObject target, Naked proposed)
 {
     if (proposed is NakedObject)
     {
         property.setAssociation(target, (NakedObject)proposed);
     }
     else
     {
         MethodInfo m = GetType().GetMethod("SetValue").MakeGenericMethod(proposed.getObject().GetType());
         m.Invoke(null, new object[] { property, target, proposed });
     }
 }