public override void Set(object onObject, object attribute) { if (null == _setter) { _setter = AccessorFactory.SetterFor(_field); } try { _setter(onObject, attribute); } catch (FieldAccessException) { _setter = _field.SetValue; _setter(onObject, attribute); } catch (Exception e) { throw new Db4oException(e); } }