private IEnumerable<LifestyleDependency> GetMismatch(LifestyleDependency parent, ComponentModel component, ComponentsMap model2Meta) { if (parent.Handler.ComponentModel == component) { yield break; } var pair = model2Meta[component]; var handler = pair.Handler; var item = new LifestyleDependency(pair, parent); if (item.Mismatched()) { yield return item; } else { foreach (ComponentModel dependent in handler.ComponentModel.Dependents) { foreach (var mismatch in GetMismatch(item, dependent, model2Meta)) { yield return mismatch; } } } }
private IEnumerable<LifestyleDependency> GetMismatch(LifestyleDependency parent, ComponentModel component, Dictionary<ComponentModel, IHandler> model2Handler) { if (parent.Handler.ComponentModel == component) { yield break; } var handler = model2Handler[component]; var item = new LifestyleDependency(handler, parent); if (item.Mismatched()) { yield return item; } else { foreach (ComponentModel dependent in handler.ComponentModel.Dependents) { foreach (var mismatch in GetMismatch(item, dependent, model2Handler)) { yield return mismatch; } } } }
private IEnumerable<DebuggerViewItem> GetMismatches(Dictionary<ComponentModel, IHandler> model2Handler, IHandler handler) { if (IsSingleton(handler) == false) { yield break; } var root = new LifestyleDependency(handler); foreach (ComponentModel dependent in handler.ComponentModel.Dependents) { foreach (var mismatch in GetMismatch(root, dependent, model2Handler)) { yield return mismatch.ViewItem; } } }
private IEnumerable<DebuggerViewItem> GetMismatches(MetaComponent component, ComponentsMap component2Handlers) { var handler = component.Handler; if (IsSingleton(handler) == false) { yield break; } var root = new LifestyleDependency(component); foreach (ComponentModel dependent in handler.ComponentModel.Dependents) { foreach (var mismatch in GetMismatch(root, dependent, component2Handlers)) { yield return mismatch.ViewItem; } } }
public LifestyleDependency(MetaComponent component, LifestyleDependency parent = null) { this.component = component; this.parent = parent; }
public LifestyleDependency(IHandler handler, LifestyleDependency parent = null) { this.handler = handler; this.parent = parent; }