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

Deconstruct(out string, out string, out int, out AssemblyRefInfo?)

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

Parameters:

public void Deconstruct(out string SourceId, out string TargetId, out int TypeRefCount, out AssemblyRefInfo? RequestedIdentity)

Parameters:

Returns: Boolean

public bool Equals(GraphEdge? 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 !=(GraphEdge? left, GraphEdge? right)

Parameters:

Returns: Boolean

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