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

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:

public void Deconstruct(out IReadOnlyList<GraphNode> Nodes, out IReadOnlyList<GraphEdge> Edges, out IReadOnlyDictionary<string, GraphNavigationContext> NavigationById)

Parameters:

Returns: Boolean

public bool Equals(DependencyGraphResult? other)

Parameters:

Returns: Boolean

public override bool Equals(object? obj)

Returns: Int32

public override int GetHashCode()

Returns: String

public override string ToString()

operator !=(DependencyGraphResult?, DependencyGraphResult?)

Section titled “operator !=(DependencyGraphResult?, DependencyGraphResult?)”

Parameters:

Returns: Boolean

public static bool operator !=(DependencyGraphResult? left, DependencyGraphResult? right)

operator ==(DependencyGraphResult?, DependencyGraphResult?)

Section titled “operator ==(DependencyGraphResult?, DependencyGraphResult?)”

Parameters:

Returns: Boolean

public static bool operator ==(DependencyGraphResult? left, DependencyGraphResult? right)