protected override void Inject(object source, object target) { foreach (PropertyDescriptor t in target.GetProps()) { var t1 = t; var es = UberFlatter.Flat(t.Name, source, type => TypesMatch(type, t1.PropertyType)); if (es.Count() == 0) { continue; } var endpoint = es.First(); if (endpoint == null) { continue; } var val = endpoint.Property.GetValue(endpoint.Component); if (AllowSetValue(val)) { t.SetValue(target, SetValue(val)); } } }