DependencyGraphResult
Namespace: Dotsider.Core.Analysis.Models
Assembly: Dotsider.Core.dll
The result of building a transitive assembly dependency graph. Contains the public topology consumed by serializers (Nodes, Edges) and the internal navigation metadata consumed by the TUI (NavigationById).
public sealed record DependencyGraphResult : IEquatable<DependencyGraphResult>Inheritance
Section titled “Inheritance”Object → DependencyGraphResult
Implements
Section titled “Implements”Constructors
Section titled “Constructors”DependencyGraphResult(IReadOnlyList<GraphNode>, IReadOnlyList<GraphEdge>, IReadOnlyDictionary<string, GraphNavigationContext>)
Section titled “DependencyGraphResult(IReadOnlyList<GraphNode>, IReadOnlyList<GraphEdge>, IReadOnlyDictionary<string, GraphNavigationContext>)”The result of building a transitive assembly dependency graph. Contains the public topology consumed by serializers (Nodes, Edges) and the internal navigation metadata consumed by the TUI (NavigationById).
Parameters:
Nodes(IReadOnlyList<GraphNode>): All nodes in the graph including the root and any unresolved or identity-mismatched leaves, each carrying its computed layout coordinates and depth.Edges(IReadOnlyList<GraphEdge>): Directed edges from each referencing assembly to every assembly it references. Edges for cycles and diamonds are preserved; a child identity revisited through a second parent emits a new edge but does not re-expand the subtree.NavigationById(IReadOnlyDictionary<String, GraphNavigationContext>): Per-node navigation metadata keyed by Id. Intended for in-process TUI use only — consumers that serialize graph topology (CLI JSON, diagnostics UDS, MCP tools) must ignore this dictionary to avoid leaking machine-local paths through their public contracts.
public DependencyGraphResult(IReadOnlyList<GraphNode> Nodes, IReadOnlyList<GraphEdge> Edges, IReadOnlyDictionary<string, GraphNavigationContext> NavigationById)Properties
Section titled “Properties”Directed edges from each referencing assembly to every assembly it references. Edges for cycles and diamonds are preserved; a child identity revisited through a second parent emits a new edge but does not re-expand the subtree.
Returns: IReadOnlyList<GraphEdge>
public IReadOnlyList<GraphEdge> Edges { get; init; }NavigationById
Section titled “NavigationById”Per-node navigation metadata keyed by Id. Intended for in-process TUI use only — consumers that serialize graph topology (CLI JSON, diagnostics UDS, MCP tools) must ignore this dictionary to avoid leaking machine-local paths through their public contracts.
Returns: IReadOnlyDictionary<String, GraphNavigationContext>
public IReadOnlyDictionary<string, GraphNavigationContext> NavigationById { get; init; }All nodes in the graph including the root and any unresolved or identity-mismatched leaves, each carrying its computed layout coordinates and depth.
Returns: IReadOnlyList<GraphNode>
public IReadOnlyList<GraphNode> Nodes { get; init; }Methods
Section titled “Methods”Deconstruct(out IReadOnlyList<GraphNode>, out IReadOnlyList<GraphEdge>, out IReadOnlyDictionary<string, GraphNavigationContext>)
Section titled “Deconstruct(out IReadOnlyList<GraphNode>, out IReadOnlyList<GraphEdge>, out IReadOnlyDictionary<string, GraphNavigationContext>)”Parameters:
Nodes(IReadOnlyList<GraphNode>)Edges(IReadOnlyList<GraphEdge>)NavigationById(IReadOnlyDictionary<String, GraphNavigationContext>)
public void Deconstruct(out IReadOnlyList<GraphNode> Nodes, out IReadOnlyList<GraphEdge> Edges, out IReadOnlyDictionary<string, GraphNavigationContext> NavigationById)Equals(DependencyGraphResult?)
Section titled “Equals(DependencyGraphResult?)”Parameters:
other(DependencyGraphResult)
Returns: Boolean
public bool Equals(DependencyGraphResult? other)Equals(object?)
Section titled “Equals(object?)”Parameters:
obj(Object)
Returns: Boolean
public override bool Equals(object? obj)GetHashCode()
Section titled “GetHashCode()”Returns: Int32
public override int GetHashCode()ToString()
Section titled “ToString()”Returns: String
public override string ToString()Members
Section titled “Members”operator !=(DependencyGraphResult?, DependencyGraphResult?)
Section titled “operator !=(DependencyGraphResult?, DependencyGraphResult?)”Parameters:
left(DependencyGraphResult)right(DependencyGraphResult)
Returns: Boolean
public static bool operator !=(DependencyGraphResult? left, DependencyGraphResult? right)operator ==(DependencyGraphResult?, DependencyGraphResult?)
Section titled “operator ==(DependencyGraphResult?, DependencyGraphResult?)”Parameters:
left(DependencyGraphResult)right(DependencyGraphResult)
Returns: Boolean
public static bool operator ==(DependencyGraphResult? left, DependencyGraphResult? right)