public NetworkAssemblyLoadContext( IPluginLogger <T> logger, INetworkAssemblyLoaderOptions <T> options, IHostFrameworkProvider hostFrameworkProvider, IHostTypesProvider <T> hostTypesProvider, IRemoteTypesProvider <T> remoteTypesProvider, IDependencyPathProvider <T> dependencyPathProvider, IProbingPathsProvider <T> probingPathsProvider, IRuntimePlatformContext runtimePlatformContext, IDepsFileProvider <T> depsFileProvider, IPluginDependencyResolver <T> pluginDependencyResolver, INativeAssemblyUnloader nativeAssemblyUnloader, IAssemblyLoadStrategyProvider assemblyLoadStrategyProvider, IHttpClientFactory httpClientFactory, ITempPathProvider <T> tempPathProvider) : base( logger, options, hostFrameworkProvider, hostTypesProvider, remoteTypesProvider, dependencyPathProvider, probingPathsProvider, runtimePlatformContext, depsFileProvider, pluginDependencyResolver, nativeAssemblyUnloader, assemblyLoadStrategyProvider ) { this.httpClient = httpClientFactory.CreateClient(); this.baseUrl = options.BaseUrl; this.tempPathProvider = tempPathProvider; }
public PluginLoadOptionsBuilder <T> IgnorePlatformInconsistencies(bool ignore = true) { if (this.assemblyLoadOptionsType != null || this.networkAssemblyLoaderOptionsType != null || this.assemblyLoader != null) { throw new PrisePluginException("Custom loaders and custom load options are not supported with IgnorePlatformInconsistencies(), please provide your own value for IgnorePlatformInconsistencies."); } if (this.assemblyLoadOptions != null) { this.assemblyLoadOptions = new DefaultAssemblyLoadOptions <T>( this.assemblyLoadOptions.PluginPlatformVersion, ignore, this.assemblyLoadOptions.NativeDependencyLoadPreference); } if (this.networkAssemblyLoaderOptions != null) { this.networkAssemblyLoaderOptions = new DefaultNetworkAssemblyLoaderOptions <T>( this.networkAssemblyLoaderOptions.BaseUrl, this.networkAssemblyLoaderOptions.PluginPlatformVersion, ignore, this.networkAssemblyLoaderOptions.NativeDependencyLoadPreference); } return(this); }
public NetworkAssemblyLoader( IPluginLogger <T> logger, INetworkAssemblyLoaderOptions <T> options, IHostFrameworkProvider hostFrameworkProvider, IHostTypesProvider <T> hostTypesProvider, IRemoteTypesProvider <T> remoteTypesProvider, IDependencyPathProvider <T> dependencyPathProvider, IProbingPathsProvider <T> probingPathsProvider, IRuntimePlatformContext runtimePlatformContext, IDepsFileProvider <T> depsFileProvider, IPluginDependencyResolver <T> pluginDependencyResolver, INativeAssemblyUnloader nativeAssemblyUnloader, IAssemblyLoadStrategyProvider assemblyLoadStrategyProvider, ITempPathProvider <T> tempPathProvider, IHttpClientFactory httpClientFactory ) { this.logger = logger; this.options = options; this.hostFrameworkProvider = hostFrameworkProvider; this.hostTypesProvider = hostTypesProvider; this.remoteTypesProvider = remoteTypesProvider; this.dependencyPathProvider = dependencyPathProvider; this.probingPathsProvider = probingPathsProvider; this.runtimePlatformContext = runtimePlatformContext; this.depsFileProvider = depsFileProvider; this.pluginDependencyResolver = pluginDependencyResolver; this.nativeAssemblyUnloader = nativeAssemblyUnloader; this.assemblyLoadStrategyProvider = assemblyLoadStrategyProvider; this.tempPathProvider = tempPathProvider; this.httpClientFactory = httpClientFactory; }
public NetworkAssemblyLoader( INetworkAssemblyLoaderOptions <T> options, IHostFrameworkProvider hostFrameworkProvider, IHostTypesProvider hostTypesProvider, IRemoteTypesProvider <T> remoteTypesProvider, IDependencyPathProvider <T> dependencyPathProvider, IProbingPathsProvider <T> probingPathsProvider, IRuntimePlatformContext runtimePlatformContext, IDepsFileProvider <T> depsFileProvider, IPluginDependencyResolver <T> pluginDependencyResolver, INativeAssemblyUnloader nativeAssemblyUnloader, IAssemblyLoadStrategyProvider assemblyLoadStrategyProvider, ITempPathProvider <T> tempPathProvider, IHttpClientFactory httpClientFactory ) { this.loadContext = new NetworkAssemblyLoadContext <T>( options, hostFrameworkProvider, hostTypesProvider, remoteTypesProvider, dependencyPathProvider, probingPathsProvider, runtimePlatformContext, depsFileProvider, pluginDependencyResolver, nativeAssemblyUnloader, assemblyLoadStrategyProvider, httpClientFactory, tempPathProvider ); this.assemblyLoadContextReference = new System.WeakReference(this.loadContext); }
public NetworkDepsFileProvider( INetworkAssemblyLoaderOptions <T> options, IHttpClientFactory httpClientFactory) { this.options = options; this.client = httpClientFactory.CreateClient(); }
public NetworkPluginDependencyResolver( IRuntimePlatformContext runtimePlatformContext, INetworkAssemblyLoaderOptions <T> options, IHttpClientFactory httpClientFactory, ITempPathProvider <T> tempPathProvider) : base(runtimePlatformContext) { this.options = options; this.httpClient = httpClientFactory.CreateClient(); this.tempPathProvider = tempPathProvider; }
public PluginLoadOptionsBuilder <T> WithNetworkAssemblyLoader( string baseUrl, PluginPlatformVersion pluginPlatformVersion = null, NativeDependencyLoadPreference nativeDependencyLoadPreference = NativeDependencyLoadPreference.PreferInstalledRuntime) { if (pluginPlatformVersion == null) { pluginPlatformVersion = PluginPlatformVersion.Empty(); } this.networkAssemblyLoaderOptions = new DefaultNetworkAssemblyLoaderOptions <T>( baseUrl, pluginPlatformVersion, false, nativeDependencyLoadPreference); this.depsFileProviderType = typeof(NetworkDepsFileProvider <T>); this.pluginDependencyResolverType = typeof(NetworkPluginDependencyResolver <T>); this.assemblyLoaderType = typeof(NetworkAssemblyLoader <T>); return(this); }