Skip to content

ImplementationAssemblyResolver

Namespace: Dotsider.Core.Analysis

Assembly: Dotsider.Core.dll

Resolves reference assemblies (e.g., System.Runtime, mscorlib) to their implementation assemblies (e.g., System.Private.CoreLib) by probing for type forwarding.

public static class ImplementationAssemblyResolver

ObjectImplementationAssemblyResolver

Resolve(string, string, string?, string?, string?, string?, NetFxBindingContext?, AssemblyAnalyzer?)

Section titled “Resolve(string, string, string?, string?, string?, string?, NetFxBindingContext?, AssemblyAnalyzer?)”

Resolves an assembly name to a path or bundle entry, falling back to the implementation assembly if the reference assembly has no IL.

Parameters:

  • referencingAssemblyPath (String): The path of the assembly that references the target.
  • assemblyName (String): The assembly name to resolve.
  • declaringType (String): Optional declaring type for type-aware resolution (needed for mscorlib).
  • targetFramework (String): Target framework moniker for shared framework probing.
  • preferredRuntimePack (String): Preferred runtime pack to probe first.
  • sourceBundlePath (String): If the referencing assembly came from a bundle, the bundle path.
  • netFxBindingContext (NetFxBindingContext): Per-root .NET Framework binding context, or null for non-net48 roots. When supplied alongside referencingAnalyzer, the resolver looks up the matching AssemblyRefInfo in the referencing analyzer’s metadata and routes the bind through NetFxBinder for CLR-accurate framework probing. .NET Core / .NET 5+ callers pass null here and behavior is unchanged.
  • referencingAnalyzer (AssemblyAnalyzer): The analyzer for the assembly that references the target, when available. Used together with netFxBindingContext to recover the requested AssemblyRef’s full identity (version + culture + PKT) for the binder.

Returns: ResolvedAssembly

The resolved assembly, or null if not found.

public static ResolvedAssembly? Resolve(string referencingAssemblyPath, string assemblyName, string? declaringType = null, string? targetFramework = null, string? preferredRuntimePack = null, string? sourceBundlePath = null, NetFxBindingContext? netFxBindingContext = null, AssemblyAnalyzer? referencingAnalyzer = null)