private static void determineSetterSource(DependencyCollection dependencies, Policies policies, PropertyInfo setter, IHasSetters plan) { var isMandatory = policies.IsMandatorySetter(setter); object dependency = null; if (setter.PropertyType.IsSimple() && !isMandatory) { dependency = dependencies.FindByTypeAndName(setter.PropertyType, setter.Name); } else { dependency = dependencies.FindByTypeOrName(setter.PropertyType, setter.Name); } if (dependency == null && !isMandatory) { return; } var source = SourceFor(SetterProperty, setter.Name, setter.PropertyType, dependency); plan.Add(setter.PropertyType, setter, source); }
private static void determineSetterSources(Type pluggedType, DependencyCollection dependencies, Policies policies, IHasSetters plan) { var setters = GetSetters(pluggedType); setters.Each(setter => determineSetterSource(dependencies, policies, setter, plan)); }
private static void determineSetterSource(DependencyCollection dependencies, Policies policies, PropertyInfo setter, IHasSetters plan) { var isMandatory = policies.IsMandatorySetter(setter); object dependency = null; if (setter.PropertyType.IsSimple() && !isMandatory) { dependency = dependencies.FindByTypeAndName(setter.PropertyType, setter.Name); } else { dependency = dependencies.FindByTypeOrName(setter.PropertyType, setter.Name); } if (dependency == null && !isMandatory) return; var source = SourceFor(SetterProperty, setter.Name, setter.PropertyType, dependency); plan.Add(setter.PropertyType, setter, source); }