public IValueComponent DeepOutRef(IValueComponent a, out IValueComponent o, ref IValueObject r)
        {
            IValueComponent oTarget;
            IValueObject    rTarget = NotifyPropertyChangeFactory.GetTarget(r);
            var             result  = _target.DeepOutRef(NotifyPropertyChangeFactory.GetTarget(a), out oTarget, ref rTarget);

            o = NotifyPropertyChangeFactory.GetProxy(oTarget);
            r = NotifyPropertyChangeFactory.GetProxy(rTarget);
            return(NotifyPropertyChangeFactory.GetProxy(result));
        }
 public IValueComponent this[IValueComponent a, IValueComponent o, IValueObject r]
 {
     get
     {
         return(NotifyPropertyChangeFactory.GetProxy(_target[NotifyPropertyChangeFactory.GetTarget(a), NotifyPropertyChangeFactory.GetTarget(o), NotifyPropertyChangeFactory.GetTarget(r)]));
     }
     set
     {
         _target[NotifyPropertyChangeFactory.GetTarget(a), NotifyPropertyChangeFactory.GetTarget(o), NotifyPropertyChangeFactory.GetTarget(r)] = NotifyPropertyChangeFactory.GetTarget(value);
     }
 }
 public ProxyIValueComponent(IValueComponent target)
 {
     _target = target;
 }
 public IValueComponent DeepMethod(IValueComponent component)
 {
     return
         (NotifyPropertyChangeFactory.GetProxy(
              _target.DeepMethod(NotifyPropertyChangeFactory.GetTarget(component))));
 }