Table of Contents

Class AssemblyNameReferenceResolver

Namespace
Xarial.XToolkit.Reflection
Assembly
BlueByte.SOLIDWORKS.PDMProfessional.SDK.dll

Default assembly name resolver

public abstract class AssemblyNameReferenceResolver : IReferenceResolver
Inheritance
AssemblyNameReferenceResolver
Implements
Derived
Inherited Members

Constructors

AssemblyNameReferenceResolver(string, string[])

Default constructor

public AssemblyNameReferenceResolver(string name, string[] filterDirs = null)

Parameters

name string

Name of the resolver

filterDirs string[]

Only resolve the assembly if requesting assembly is in the specified directories

Properties

Name

Name of the resolver

public string Name { get; }

Property Value

string

Remarks

Used in the logs

Methods

GetCulture(AssemblyName)

Gets the culture of the assembly name

protected string GetCulture(AssemblyName assmName)

Parameters

assmName AssemblyName

Assembly name

Returns

string

Text of the culture

GetPublicKeyToken(AssemblyName)

Gets the public key token from the assembly name

protected string GetPublicKeyToken(AssemblyName assmName)

Parameters

assmName AssemblyName

Assembly name

Returns

string

Text version of public key token

GetReplacementAssemblyName(AssemblyName, Assembly, out string, out bool)

Provides the name of the assembly to replace for this missing reference

protected abstract AssemblyName GetReplacementAssemblyName(AssemblyName assmName, Assembly requestingAssembly, out string searchDir, out bool recursiveSearch)

Parameters

assmName AssemblyName

Missing assembly name

requestingAssembly Assembly

Assembly that requests this missing reference

searchDir string

Search directory

recursiveSearch bool

True to search in sub-directories recursievely

Returns

AssemblyName

Assemly to replace

LoadAssembly(AssemblyInfo)

Load the assembly

protected Assembly LoadAssembly(AssemblyNameReferenceResolver.AssemblyInfo assmInfo)

Parameters

assmInfo AssemblyNameReferenceResolver.AssemblyInfo

Assembly information

Returns

Assembly

Loaded assembly

Match(AssemblyName, AssemblyName)

Compares two assemblies to see if those match

protected virtual bool Match(AssemblyName probeAssmName, AssemblyName searchAssmName)

Parameters

probeAssmName AssemblyName

Assembly candidate

searchAssmName AssemblyName

Target assembly

Returns

bool

True if assembly names are matching

Remarks

Use this method to override logic for matching (e.g. full match or only match by file name, version, public key token etc.)

ProvideProbeAssemblyFilePaths(string, AssemblyName)

Returnes probe assemly file paths

protected virtual IEnumerable<string> ProvideProbeAssemblyFilePaths(string dir, AssemblyName searchAssmName)

Parameters

dir string

Directory to search in

searchAssmName AssemblyName

Target assembly name

Returns

IEnumerable<string>

Possible file paths of the assembly file

Resolve(AppDomain, AssemblyName, Assembly)

Resolves the missing assembly reference

public virtual Assembly Resolve(AppDomain appDomain, AssemblyName assmName, Assembly requestingAssembly)

Parameters

appDomain AppDomain

Application domain

assmName AssemblyName

Assembly name to resolve

requestingAssembly Assembly

Assembly which requests the missing reference

Returns

Assembly

Replacement assembly

ResolveAmbiguity(IReadOnlyList<AssemblyInfo>, AssemblyName)

Provides the assembly to use if multiple options available

protected virtual AssemblyNameReferenceResolver.AssemblyInfo ResolveAmbiguity(IReadOnlyList<AssemblyNameReferenceResolver.AssemblyInfo> assmNames, AssemblyName searchAssmName)

Parameters

assmNames IReadOnlyList<AssemblyNameReferenceResolver.AssemblyInfo>

Assembly candidates

searchAssmName AssemblyName

Target assembly name

Returns

AssemblyNameReferenceResolver.AssemblyInfo

Assembly to use

ShouldResolve(AppDomain, AssemblyName, Assembly)

Checks if assembly should be resolved by this resolver

protected virtual bool ShouldResolve(AppDomain appDomain, AssemblyName assmName, Assembly requestingAssembly)

Parameters

appDomain AppDomain

App Domain

assmName AssemblyName

Assembly to resolve

requestingAssembly Assembly

Requesting assembly

Returns

bool