internal void AbsorbCurrentValues(ComplexAspect sourceAspect) { this.ComplexType.DataProperties.ForEach(p => { var sourceValue = sourceAspect.GetValue(p); if (p.IsComplexProperty) { var targetChildCo = GetValue <IComplexObject>(p); var targetChildAspect = targetChildCo.ComplexAspect; var sourceChildAspect = ((IComplexObject)sourceValue).ComplexAspect; targetChildAspect.AbsorbCurrentValues(sourceChildAspect); } else { SetDpValue(p, sourceValue); } }); }
protected T GetValue <T>([CallerMemberName] string propertyName = "") { return(ComplexAspect.GetValue <T>(propertyName)); }