Skip to content

RecoveredType

Namespace: Dotsider.Core.Analysis.Models

Assembly: Dotsider.Core.dll

A type recovered from a Native AOT binary’s embedded NativeFormat metadata. ILC strips ECMA-335 metadata, but the reflection and stack-trace metadata it keeps still names the binary’s own types and methods, so a stripped binary can describe itself.

public sealed record RecoveredType : IEquatable<RecoveredType>

ObjectRecoveredType

RecoveredType(string, IReadOnlyList<string>, string?)

Section titled “RecoveredType(string, IReadOnlyList<string>, string?)”

A type recovered from a Native AOT binary’s embedded NativeFormat metadata. ILC strips ECMA-335 metadata, but the reflection and stack-trace metadata it keeps still names the binary’s own types and methods, so a stripped binary can describe itself.

Parameters:

  • FullName (String): The namespace-qualified type name (nested types use +).
  • MethodNames (IReadOnlyList<String>): The names of the type’s methods, in metadata order.
  • AssemblyName (String): The simple name of the assembly scope that defined the type, or null when the metadata does not record one. Native symbol demangling joins mangled names against this scope.
public RecoveredType(string FullName, IReadOnlyList<string> MethodNames, string? AssemblyName = null)

The simple name of the assembly scope that defined the type, or null when the metadata does not record one. Native symbol demangling joins mangled names against this scope.

Returns: String

public string? AssemblyName { get; init; }

The namespace-qualified type name (nested types use +).

Returns: String

public string FullName { get; init; }

The names of the type’s methods, in metadata order.

Returns: IReadOnlyList<String>

public IReadOnlyList<string> MethodNames { get; init; }

Deconstruct(out string, out IReadOnlyList<string>)

Section titled “Deconstruct(out string, out IReadOnlyList<string>)”

Deconstructs into the original two components, preserving call sites written before AssemblyName existed — a record’s generated Deconstruct grows with its positional parameters, so the two-value form is kept explicitly.

Parameters:

  • fullName (String): The namespace-qualified type name.
  • methodNames (IReadOnlyList<String>): The names of the type’s methods, in metadata order.
public void Deconstruct(out string fullName, out IReadOnlyList<string> methodNames)