mirror of
https://github.com/BepInEx/BepInEx.git
synced 2026-10-20 01:46:13 +00:00
Expose default TypeLoader Resolver and ReaderParameters
This commit is contained in:
1 parent
9d305e16fa
commit
50755c5d2a
1 file changed
+16
-9
@@ -51,21 +51,28 @@ namespace BepInEx.Bootstrap
|
||||
/// </summary>
|
||||
public static class TypeLoader
|
||||
{
|
||||
private static readonly DefaultAssemblyResolver resolver;
|
||||
private static readonly ReaderParameters readerParameters;
|
||||
/// <summary>
|
||||
/// Default assembly resolved used by the <see cref="TypeLoader"/>
|
||||
/// </summary>
|
||||
public static readonly DefaultAssemblyResolver Resolver;
|
||||
|
||||
/// <summary>
|
||||
/// Default reader parameters used by <see cref="TypeLoader"/>
|
||||
/// </summary>
|
||||
public static readonly ReaderParameters ReaderParameters;
|
||||
|
||||
static TypeLoader()
|
||||
{
|
||||
resolver = new DefaultAssemblyResolver();
|
||||
readerParameters = new ReaderParameters { AssemblyResolver = resolver };
|
||||
Resolver = new DefaultAssemblyResolver();
|
||||
ReaderParameters = new ReaderParameters { AssemblyResolver = Resolver };
|
||||
|
||||
resolver.ResolveFailure += (sender, reference) =>
|
||||
Resolver.ResolveFailure += (sender, reference) =>
|
||||
{
|
||||
var name = new AssemblyName(reference.FullName);
|
||||
|
||||
if (Utility.TryResolveDllAssembly(name, Paths.BepInExAssemblyDirectory, readerParameters, out var assembly) ||
|
||||
Utility.TryResolveDllAssembly(name, Paths.PluginPath, readerParameters, out assembly) ||
|
||||
Utility.TryResolveDllAssembly(name, Paths.ManagedPath, readerParameters, out assembly))
|
||||
if (Utility.TryResolveDllAssembly(name, Paths.BepInExAssemblyDirectory, ReaderParameters, out var assembly) ||
|
||||
Utility.TryResolveDllAssembly(name, Paths.PluginPath, ReaderParameters, out assembly) ||
|
||||
Utility.TryResolveDllAssembly(name, Paths.ManagedPath, ReaderParameters, out assembly))
|
||||
return assembly;
|
||||
|
||||
return AssemblyResolve?.Invoke(sender, reference);
|
||||
@@ -104,7 +111,7 @@ namespace BepInEx.Bootstrap
|
||||
}
|
||||
}
|
||||
|
||||
var ass = AssemblyDefinition.ReadAssembly(dll, readerParameters);
|
||||
var ass = AssemblyDefinition.ReadAssembly(dll, ReaderParameters);
|
||||
|
||||
if (!assemblyFilter?.Invoke(ass) ?? false)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user