Skip to content

GraphNode

Namespace: Dotsider.Core.Analysis.Models

Assembly: Dotsider.Core.dll

A node in the transitive assembly dependency graph. Topology only — layout coordinates and rendered labels are the responsibility of the view layer, which projects the visible subgraph into a separate render model so filters and viewport changes rebalance without perturbing this record.

public sealed record GraphNode : IEquatable<GraphNode>

ObjectGraphNode

GraphNode(string, string, string?, string, string?, bool, int, bool, GraphNodeKind)

Section titled “GraphNode(string, string, string?, string, string?, bool, int, bool, GraphNodeKind)”

A node in the transitive assembly dependency graph. Topology only — layout coordinates and rendered labels are the responsibility of the view layer, which projects the visible subgraph into a separate render model so filters and viewport changes rebalance without perturbing this record.

Parameters:

  • Id (String): Stable opaque identifier for this node, derived from the full assembly identity (Name, Version, Culture, PublicKeyToken) via String). Two assemblies that share a simple name but differ in any identity field produce distinct ids.
  • Name (String): Assembly simple name.
  • Version (String): Assembly version string, or null when unavailable.
  • Culture (String): Assembly culture, or "neutral" for culture-neutral assemblies. Never empty.
  • PublicKeyToken (String): Public key token hex string, or null.
  • IsRoot (Boolean): Whether this is the analyzed assembly (the root of the graph).
  • Depth (Int32): The minimum number of AssemblyRef hops from the root to this node as discovered by BFS. Zero for the root; one for direct references; greater for transitive references.
  • Unresolved (Boolean): Whether this node is a leaf that could not be resolved. Includes both the case where no probe produced any candidate and the case where a probe produced a simple-name match whose manifest identity did not match — the latter is further distinguished by the node’s navigation-context provenance.
  • Kind (GraphNodeKind): What the node represents. Defaults to Assembly and is omitted from serialized output at that default, so managed graph JSON is unchanged.
public GraphNode(string Id, string Name, string? Version, string Culture, string? PublicKeyToken, bool IsRoot, int Depth, bool Unresolved, GraphNodeKind Kind = GraphNodeKind.Assembly)

Assembly culture, or "neutral" for culture-neutral assemblies. Never empty.

Returns: String

public string Culture { get; init; }

The minimum number of AssemblyRef hops from the root to this node as discovered by BFS. Zero for the root; one for direct references; greater for transitive references.

Returns: Int32

public int Depth { get; init; }

Stable opaque identifier for this node, derived from the full assembly identity (Name, Version, Culture, PublicKeyToken) via String). Two assemblies that share a simple name but differ in any identity field produce distinct ids.

Returns: String

public string Id { get; init; }

Whether this is the analyzed assembly (the root of the graph).

Returns: Boolean

public bool IsRoot { get; init; }

What the node represents. Defaults to Assembly and is omitted from serialized output at that default, so managed graph JSON is unchanged.

Returns: GraphNodeKind

[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public GraphNodeKind Kind { get; init; }

Assembly simple name.

Returns: String

public string Name { get; init; }

Public key token hex string, or null.

Returns: String

public string? PublicKeyToken { get; init; }

Whether this node is a leaf that could not be resolved. Includes both the case where no probe produced any candidate and the case where a probe produced a simple-name match whose manifest identity did not match — the latter is further distinguished by the node’s navigation-context provenance.

Returns: Boolean

public bool Unresolved { get; init; }

Assembly version string, or null when unavailable.

Returns: String

public string? Version { get; init; }

Deconstruct(out string, out string, out string?, out string, out string?, out bool, out int, out bool, out GraphNodeKind)

Section titled “Deconstruct(out string, out string, out string?, out string, out string?, out bool, out int, out bool, out GraphNodeKind)”

Parameters:

public void Deconstruct(out string Id, out string Name, out string? Version, out string Culture, out string? PublicKeyToken, out bool IsRoot, out int Depth, out bool Unresolved, out GraphNodeKind Kind)

Parameters:

Returns: Boolean

public bool Equals(GraphNode? other)

Parameters:

Returns: Boolean

public override bool Equals(object? obj)

Returns: Int32

public override int GetHashCode()

Returns: String

public override string ToString()

Parameters:

Returns: Boolean

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

Parameters:

Returns: Boolean

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