Skip to content

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>

ObjectDependencyGraphResult

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)

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

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