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
stringName 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
Remarks
Used in the logs
Methods
GetCulture(AssemblyName)
Gets the culture of the assembly name
protected string GetCulture(AssemblyName assmName)
Parameters
assmName
AssemblyNameAssembly 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
AssemblyNameAssembly 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
AssemblyNameMissing assembly name
requestingAssembly
AssemblyAssembly that requests this missing reference
searchDir
stringSearch directory
recursiveSearch
boolTrue 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.AssemblyInfoAssembly 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
AssemblyNameAssembly candidate
searchAssmName
AssemblyNameTarget 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
stringDirectory to search in
searchAssmName
AssemblyNameTarget 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
AppDomainApplication domain
assmName
AssemblyNameAssembly name to resolve
requestingAssembly
AssemblyAssembly 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
AssemblyNameTarget 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
AppDomainApp Domain
assmName
AssemblyNameAssembly to resolve
requestingAssembly
AssemblyRequesting assembly