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
namestringName of the resolver
filterDirsstring[]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
assmNameAssemblyNameAssembly name
Returns
- string
Text of the culture
GetPublicKeyToken(AssemblyName)
Gets the public key token from the assembly name
protected string GetPublicKeyToken(AssemblyName assmName)
Parameters
assmNameAssemblyNameAssembly 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
assmNameAssemblyNameMissing assembly name
requestingAssemblyAssemblyAssembly that requests this missing reference
searchDirstringSearch directory
recursiveSearchboolTrue to search in sub-directories recursievely
Returns
- AssemblyName
Assemly to replace
LoadAssembly(AssemblyInfo)
Load the assembly
protected Assembly LoadAssembly(AssemblyNameReferenceResolver.AssemblyInfo assmInfo)
Parameters
assmInfoAssemblyNameReferenceResolver.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
probeAssmNameAssemblyNameAssembly candidate
searchAssmNameAssemblyNameTarget 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
dirstringDirectory to search in
searchAssmNameAssemblyNameTarget 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
appDomainAppDomainApplication domain
assmNameAssemblyNameAssembly name to resolve
requestingAssemblyAssemblyAssembly 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
assmNamesIReadOnlyList<AssemblyNameReferenceResolver.AssemblyInfo>Assembly candidates
searchAssmNameAssemblyNameTarget 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
appDomainAppDomainApp Domain
assmNameAssemblyNameAssembly to resolve
requestingAssemblyAssemblyRequesting assembly