using System; using System.Reflection; namespace Prise.AssemblyLoading { public interface IAssemblyLoadStrategy { /// /// Loads a dependency assembly for the current plugin /// /// Directory where the plugin was initially loaded from /// /// /// /// /// /// A loaded assembly AssemblyFromStrategy LoadAssembly( string initialPluginLoadDirectory, AssemblyName assemblyName, IPluginDependencyContext pluginDependencyContext, Func> loadFromDependencyContext, Func> loadFromRemote, Func> loadFromAppDomain); /// /// Loads a native assembly /// /// Directory where the plugin was initially loaded from /// /// /// /// /// /// The path to a native assembly NativeAssembly LoadUnmanagedDll( string initialPluginLoadDirectory, string unmanagedDllName, IPluginDependencyContext pluginDependencyContext, Func> loadFromDependencyContext, Func> loadFromRemote, Func> loadFromAppDomain); } }