private IEnumerable<MismatchedLifestyleDependencyViewBuilder> GetMismatch(MismatchedLifestyleDependencyViewBuilder parent, ComponentModel component, Dictionary<ComponentModel, IHandler> model2Handler) { if (parent.Checked(component)) { yield break; } var handler = model2Handler[component]; var item = new MismatchedLifestyleDependencyViewBuilder(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; } } } }
public MismatchedLifestyleDependencyViewBuilder(IHandler handler, MismatchedLifestyleDependencyViewBuilder parent = null) { this.handler = handler; this.parent = parent; if(parent == null) { ultimateRootComponent = handler.ComponentModel; } else { ultimateRootComponent = parent.ultimateRootComponent; } }
public MismatchedLifestyleDependencyViewBuilder(IHandler handler, MismatchedLifestyleDependencyViewBuilder parent = null) { this.handler = handler; this.parent = parent; if(parent == null) { checkedComponents = new HashSet<ComponentModel> { handler.ComponentModel }; } else { checkedComponents = new HashSet<ComponentModel> { parent.Handler.ComponentModel }; } }
public MismatchedLifestyleDependencyViewBuilder(IHandler handler, MismatchedLifestyleDependencyViewBuilder parent = null) { this.handler = handler; this.parent = parent; if (parent == null) { checkedComponents = new HashSet <ComponentModel> { handler.ComponentModel }; } else { checkedComponents = new HashSet <ComponentModel> { parent.Handler.ComponentModel }; } }
public MismatchedLifestyleDependencyViewBuilder(IHandler handler, MismatchedLifestyleDependencyViewBuilder parent = null) { this.handler = handler; this.parent = parent; }
private IEnumerable<DebuggerViewItem> GetMismatches(Dictionary<ComponentModel, IHandler> model2Handler, IHandler handler) { if (IsSingleton(handler) == false) { yield break; } var root = new MismatchedLifestyleDependencyViewBuilder(handler); foreach (ComponentModel dependent in handler.ComponentModel.Dependents) { foreach (var mismatch in GetMismatch(root, dependent, model2Handler)) { yield return mismatch.ViewItem; } } }