Skip to content

GraphEdge

Namespace: Dotsider.Core.Analysis.Models

Assembly: Dotsider.Core.dll

A directed edge from a referencing assembly to a referenced assembly in the transitive dependency graph. Edges are retained for cycles and diamonds: revisiting an already-seen target identity emits a new edge but does not re-expand the target’s subtree.

public sealed record GraphEdge : IEquatable<GraphEdge>

ObjectGraphEdge

GraphEdge(string, string, int, AssemblyRefInfo?)

Section titled “GraphEdge(string, string, int, AssemblyRefInfo?)”

A directed edge from a referencing assembly to a referenced assembly in the transitive dependency graph. Edges are retained for cycles and diamonds: revisiting an already-seen target identity emits a new edge but does not re-expand the target’s subtree.

Parameters:

  • SourceId (String): The Id of the referencing assembly.
  • TargetId (String): The Id of the referenced assembly.
  • TypeRefCount (Int32): The number of TypeRef entries in the referencing assembly whose resolution scope resolves to the exact full identity of the target (not merely its simple name). Zero when the target is referenced by the AssemblyRef table but no TypeRefs are scoped to it.
  • RequestedIdentity (AssemblyRefInfo): The identity exactly as it appeared in the referencing assembly’s AssemblyRef metadata, before any .NET Framework binding policy was applied. May differ from the target node’s identity when the target was keyed on the bound identity (e.g., two AssemblyRefs at different versions both redirected to the same loaded version collapse onto a single target node, but each edge preserves its own pre-redirect requested identity here). null when there was no policy rewrite — the requested identity is the same as the target node’s identity in that case.
public GraphEdge(string SourceId, string TargetId, int TypeRefCount, AssemblyRefInfo? RequestedIdentity = null)

The identity exactly as it appeared in the referencing assembly’s AssemblyRef metadata, before any .NET Framework binding policy was applied. May differ from the target node’s identity when the target was keyed on the bound identity (e.g., two AssemblyRefs at different versions both redirected to the same loaded version collapse onto a single target node, but each edge preserves its own pre-redirect requested identity here). null when there was no policy rewrite — the requested identity is the same as the target node’s identity in that case.

Returns: AssemblyRefInfo

public AssemblyRefInfo? RequestedIdentity { get; init; }

The Id of the referencing assembly.

Returns: String

public string SourceId { get; init; }

The Id of the referenced assembly.

Returns: String

public string TargetId { get; init; }

The number of TypeRef entries in the referencing assembly whose resolution scope resolves to the exact full identity of the target (not merely its simple name). Zero when the target is referenced by the AssemblyRef table but no TypeRefs are scoped to it.

Returns: Int32

public int TypeRefCount { get; init; }