public ComponentDebuggerView(MetaComponent component, params IComponentDebuggerExtension[] defaultExtension) { key = component.Name; additionalServicesCount = component.ServicesCount - 1; handler = component.Handler; extension = defaultExtension.Concat(GetExtensions(handler)).ToArray(); description = BuildDescription(); }
public ComponentDebuggerView(MetaComponent component, params IComponentDebuggerExtension[] defaultExtension) { key = component.Name; forwardedCount = component.ForwardedTypesCount; handler = component.Handler; extension = defaultExtension.Concat(GetExtensions(handler)).ToArray(); }
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; } } }
private void ContributeItem(MetaComponent mismatched, StringBuilder message, IList<MetaComponent> items) { if (ImTheRoot()) { items.Add(component); message.AppendFormat("Component '{0}' with lifestyle {1} ", component.Name, component.Model.GetLifestyleDescription()); message.AppendFormat("depends on '{0}' with lifestyle {1}", mismatched.Name, mismatched.Model.GetLifestyleDescription()); return; } parent.ContributeItem(mismatched, message, items); items.Add(component); message.AppendLine(); message.AppendFormat("\tvia '{0}' with lifestyle {1}", component.Name, component.Model.GetLifestyleDescription()); }
public LifestyleDependency(MetaComponent component, LifestyleDependency parent = null) { this.component = component; this.parent = parent; }
private string GetName(MetaComponent root) { var indirect = (parent.component == root) ? string.Empty : "indirectly "; return string.Format("\"{0}\" »{1}« {2}depends on", root.Name, root.Model.GetLifestyleDescription(), indirect); }
protected ComponentDebuggerView DefaultComponentView(MetaComponent component) { return new ComponentDebuggerView(component, new DefaultComponentView(component.Handler, component.ForwardedTypes)); }
protected ComponentDebuggerView DefaultComponentView(MetaComponent component) { return new ComponentDebuggerView(component, new DefaultComponentView(component.Handler)); }
private DebuggerViewItem BuildComponentView(MetaComponent component) { var defaultExtension = new DefaultComponentView(component.Handler, component.ForwardedTypes); var item = new ComponentDebuggerView(component, defaultExtension); return new DebuggerViewItem(component.Name, component.Model.GetLifestyleDescription(), item); }
public MismatchedDependency(string description, MetaComponent[] components) { this.components = components; this.description = description; }