Skip to content

Dotsider.Core.Analysis.Models

Records that a requested identity was rewritten by .NET Framework binding policy. Carried on AppliedPolicy so the UI can render ”↪ redirected 1.0.0.0 → 13.0.0.0 via app.config” without inventing new AssemblyProvenance values for redirected hits — a redirect-applied AppLocal hit is still AppLocal, just with this annotation attached.

public sealed record AppliedPolicy : IEquatable<AppliedPolicy>

The complete diff result between two assemblies.

public sealed record AssemblyDiffResult : IEquatable<AssemblyDiffResult>

The result of opening an assembly file via AssemblyLoader, distinguishing between direct loads, apphost companion redirects, and single-file bundle entry extractions.

public abstract record AssemblyOpenResult : IEquatable<AssemblyOpenResult>

The file is a native apphost with a companion managed .dll on disk. The caller decides when to redirect (e.g. showing a dialog first).

public sealed record AssemblyOpenResult.ApphostWithCompanion : AssemblyOpenResult, IEquatable<AssemblyOpenResult>, IEquatable<AssemblyOpenResult.ApphostWithCompanion>

The file is a single-file bundle. The entry assembly has been extracted from the bundle and is ready for analysis.

public sealed record AssemblyOpenResult.BundleEntry : AssemblyOpenResult, IEquatable<AssemblyOpenResult>, IEquatable<AssemblyOpenResult.BundleEntry>

Direct load — the file is a .dll or .exe with metadata, or a native binary with no metadata (NativeAOT, unknown format).

public sealed record AssemblyOpenResult.Direct : AssemblyOpenResult, IEquatable<AssemblyOpenResult>, IEquatable<AssemblyOpenResult.Direct>

Information about a referenced assembly from the AssemblyRef metadata table.

public sealed record AssemblyRefInfo : IEquatable<AssemblyRefInfo>

Outcome of an identity-based assembly resolution. Carries everything the dependency-graph builder and UI need: the resolved file/bundle (or null on failure), the provenance classifying how the file was located, the candidate path of an identity-mismatched simple-name hit, and — for .NET Framework binds — the policy-layer attribution and the effective bound identity.

public sealed record AssemblyResolution : IEquatable<AssemblyResolution>

Aggregated .NET Framework binding policy assembled from framework unification, machine.config, publisher-policy assemblies, and the application configuration file. Layers are stored in document order with first-match semantics — the same model the CLR applies — and later layers (machine.config > publisher > app > framework unification) override earlier ones when they target the same identity.

public sealed record BindingPolicy : IEquatable<BindingPolicy>

Output of NetFxRuntimeVersion): the redirects, codeBase entries, per-identity publisher-policy disablements, probing privatePath segments, and the runtime-scoped publisher-policy bypass flag found in a single configuration file.

public sealed record BindingPolicyParseResult : IEquatable<BindingPolicyParseResult>

One &lt;bindingRedirect&gt; entry parsed from a .NET Framework configuration file or a publisher-policy assembly’s embedded XML resource.

public sealed record BindingRedirect : IEquatable<BindingRedirect>

Describes a single file entry within a .NET single-file bundle.

public sealed record BundleEntry : IEquatable<BundleEntry>

The parsed manifest header of a .NET single-file bundle.

public sealed record BundleManifest : IEquatable<BundleManifest>

CLR (Common Language Runtime) header information from the PE file’s COR20 header.

public sealed record ClrHeader : IEquatable<ClrHeader>

One &lt;codeBase&gt; entry parsed from a .NET Framework configuration file or publisher-policy assembly. CodeBase entries are honored only for strong-named binds at the version specified.

public sealed record CodeBaseEntry : IEquatable<CodeBaseEntry>

A snapshot of runtime performance counters at a point in time.

public sealed record CounterSnapshot : IEquatable<CounterSnapshot>

Information about a custom attribute applied to a metadata entity.

public sealed record CustomAttributeInfo : IEquatable<CustomAttributeInfo>

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>

A single diff entry wrapping an item from either side.

public sealed record DiffEntry<T> : IEquatable<DiffEntry<T>>

Summary statistics for the diff.

public sealed record DiffSummary : IEquatable<DiffSummary>

Information about a field defined in the assembly’s FieldDef metadata table.

public sealed record FieldDefInfo : IEquatable<FieldDefInfo>

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>

Internal per-node metadata describing how a dependency graph node was resolved and the context under which it was reached. Used by the TUI for Enter-to-open navigation and framework filtering. Never serialized — this data must not leak through CLI, diagnostics, or MCP surfaces that publish graph topology.

public sealed record GraphNavigationContext : IEquatable<GraphNavigationContext>

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>

A single decoded IL (Intermediate Language) instruction.

public sealed record IlInstruction : IEquatable<IlInstruction>

Represents the resolved target of an IL code navigation (go-to-definition) action.

public abstract record IlNavigationTarget : IEquatable<IlNavigationTarget>

A field in an external (referenced) assembly.

public sealed record IlNavigationTarget.ExternalField : IlNavigationTarget, IEquatable<IlNavigationTarget>, IEquatable<IlNavigationTarget.ExternalField>

A method in an external (referenced) assembly.

public sealed record IlNavigationTarget.ExternalMethod : IlNavigationTarget, IEquatable<IlNavigationTarget>, IEquatable<IlNavigationTarget.ExternalMethod>

A type in an external (referenced) assembly.

public sealed record IlNavigationTarget.ExternalType : IlNavigationTarget, IEquatable<IlNavigationTarget>, IEquatable<IlNavigationTarget.ExternalType>

A MethodSpec whose metadata could not be decoded into a navigable target.

public sealed record IlNavigationTarget.GenericInstantiation : IlNavigationTarget, IEquatable<IlNavigationTarget>, IEquatable<IlNavigationTarget.GenericInstantiation>

A field defined in the current assembly.

public sealed record IlNavigationTarget.LocalField : IlNavigationTarget, IEquatable<IlNavigationTarget>, IEquatable<IlNavigationTarget.LocalField>

A method defined in the current assembly.

public sealed record IlNavigationTarget.LocalMethod : IlNavigationTarget, IEquatable<IlNavigationTarget>, IEquatable<IlNavigationTarget.LocalMethod>

A type defined in the current assembly.

public sealed record IlNavigationTarget.LocalType : IlNavigationTarget, IEquatable<IlNavigationTarget>, IEquatable<IlNavigationTarget.LocalType>

A token that could not be resolved to any known target.

public sealed record IlNavigationTarget.Unresolved : IlNavigationTarget, IEquatable<IlNavigationTarget>, IEquatable<IlNavigationTarget.Unresolved>

A token kind that is recognized but not supported for navigation.

public sealed record IlNavigationTarget.Unsupported : IlNavigationTarget, IEquatable<IlNavigationTarget>, IEquatable<IlNavigationTarget.Unsupported>

Per-loaded-identity entry interned in LoadedAssemblyCache. When two distinct requested identities redirect to the same loaded identity, both Loaded values reference-equal this single entry, faithfully modeling the CLR’s “already loaded” reuse: only one filesystem read per loaded identity.

public sealed record LoadedAssemblyEntry : IEquatable<LoadedAssemblyEntry>

Information about a referenced member (method or field) from the MemberRef metadata table.

public sealed record MemberRefInfo : IEquatable<MemberRefInfo>

Information about a method defined in the assembly’s MethodDef metadata table.

public sealed record MethodDefInfo : IEquatable<MethodDefInfo>

Per-root metadata required to drive a CLR-accurate .NET Framework bind. Built once per analyzed root via AssemblyAnalyzer); carried alongside the analyzer through every resolution surface (Dep Graph, IL navigation, General-tab drill-in, type-forwarder chase) so that every code path produces the same answer for any .NET Framework reference.

public sealed record NetFxBindingContext : IEquatable<NetFxBindingContext>

Result of a single .NET Framework bind. Carries the requested identity, the effective identity after policy was applied, the loaded identity (when binding succeeded), the file path the CLR would load, the provenance classification, the policy-layer attribution, and (when binding failed) a human-readable reason for UI surfacing.

public sealed record NetFxBindResult : IEquatable<NetFxBindResult>

Represents a file entry within a NuGet package (.nupkg).

public sealed record NuGetFileEntry : IEquatable<NuGetFileEntry>

A line of output captured from the traced process’s stdout or stderr.

public sealed record OutputLine : IEquatable<OutputLine>

Aggregated PE header information for a .NET assembly.

public sealed record PeHeaders : IEquatable<PeHeaders>

The result of resolving an assembly reference — either a file on disk or bytes from a bundle.

public abstract record ResolvedAssembly : IEquatable<ResolvedAssembly>

The assembly was found inside a single-file bundle.

public sealed record ResolvedAssembly.FromBundle : ResolvedAssembly, IEquatable<ResolvedAssembly>, IEquatable<ResolvedAssembly.FromBundle>

The assembly was found as a file on disk.

public sealed record ResolvedAssembly.FromFile : ResolvedAssembly, IEquatable<ResolvedAssembly>, IEquatable<ResolvedAssembly.FromFile>

Information about a managed resource embedded in the assembly.

public sealed record ResourceInfo : IEquatable<ResourceInfo>

Information about a single PE section (e.g., .text, .rsrc, .reloc).

public sealed record SectionInfo : IEquatable<SectionInfo>

A node in the size treemap hierarchy. Can be assembly, namespace, type, or method.

public sealed record SizeNode : IEquatable<SizeNode>

A string extracted from the assembly, along with its source and offset.

public sealed record StringEntry : IEquatable<StringEntry>

A single traced runtime event captured from the EventPipe session.

public sealed record TraceEventEntry : IEquatable<TraceEventEntry>

Summary statistics aggregated from all collected trace events.

public sealed record TraceSummary : IEquatable<TraceSummary>

Information about a type defined in the assembly’s TypeDef metadata table.

public sealed record TypeDefInfo : IEquatable<TypeDefInfo>

Information about a referenced type from the TypeRef metadata table.

public sealed record TypeRefInfo : IEquatable<TypeRefInfo>

Describes how an assembly in the dependency graph was located — or why it could not be.

public enum AssemblyProvenance

Identifies the type of file embedded in a .NET single-file bundle.

public enum BundleFileType : byte

Describes the kind of difference detected between two assembly elements.

public enum DiffKind

Distinguishes whether a MemberRef entry refers to a method or a field.

public enum MemberRefKind

Effective process bitness for a .NET Framework root assembly. Models actual runtime architecture, not the PE’s compile-time descriptor — AnyCPU is a compile-time attribute that resolves to host bitness at load time, so there is no MSIL runtime arch.

public enum NetFxArchitecture

.NET Framework CLR version a NetFxBindingContext targets. The CLR version (not the product TFM) drives the binding pipeline because the GAC layout, machine.config path, framework runtime directory, reference-assemblies tree, and appliesTo filter all switch on the CLR generation: Clr2 covers .NET Framework 2.0 / 3.0 / 3.5 SP1 (process runs on v2.0.50727); Clr4 covers .NET Framework 4.0 through 4.8.x (process runs on v4.0.30319).

public enum NetFxRuntimeVersion

Identifies which layer of .NET Framework binding policy rewrote a requested assembly identity. The CLR walks app config first, then publisher policy (unless bypassed by &lt;publisherPolicy apply="no"/&gt;), then machine.config; later layers override earlier ones, so the effective winner is machine.config > publisher > app > framework unification.

public enum PolicyLayer

The granularity level of a SizeNode in the size breakdown tree.

public enum SizeNodeKind

Identifies the source from which a string was extracted.

public enum StringSource

Category of a traced runtime event, used for coloring in the events table.

public enum TraceEventCategory

Current state of the traced process lifecycle.

public enum TraceProcessState