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); } } } }
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); } } }