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>Inheritance
Section titled “Inheritance”Object → GraphEdge
Implements
Section titled “Implements”Constructors
Section titled “Constructors”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)Properties
Section titled “Properties”RequestedIdentity
Section titled “RequestedIdentity”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; }SourceId
Section titled “SourceId”The Id of the referencing assembly.
Returns: String
public string SourceId { get; init; }TargetId
Section titled “TargetId”The Id of the referenced assembly.
Returns: String
public string TargetId { get; init; }TypeRefCount
Section titled “TypeRefCount”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; }Methods
Section titled “Methods”Deconstruct(out string, out string, out int, out AssemblyRefInfo?)
Section titled “Deconstruct(out string, out string, out int, out AssemblyRefInfo?)”Parameters:
SourceId(String)TargetId(String)TypeRefCount(Int32)RequestedIdentity(AssemblyRefInfo)
public void Deconstruct(out string SourceId, out string TargetId, out int TypeRefCount, out AssemblyRefInfo? RequestedIdentity)Equals(GraphEdge?)
Section titled “Equals(GraphEdge?)”Parameters:
other(GraphEdge)
Returns: Boolean
public bool Equals(GraphEdge? other)Equals(object?)
Section titled “Equals(object?)”Parameters:
obj(Object)
Returns: Boolean
public override bool Equals(object? obj)GetHashCode()
Section titled “GetHashCode()”Returns: Int32
public override int GetHashCode()ToString()
Section titled “ToString()”Returns: String
public override string ToString()Members
Section titled “Members”operator !=(GraphEdge?, GraphEdge?)
Section titled “operator !=(GraphEdge?, GraphEdge?)”Parameters:
Returns: Boolean
public static bool operator !=(GraphEdge? left, GraphEdge? right)operator ==(GraphEdge?, GraphEdge?)
Section titled “operator ==(GraphEdge?, GraphEdge?)”Parameters:
Returns: Boolean
public static bool operator ==(GraphEdge? left, GraphEdge? right)