using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Reflection; using Barotrauma.LuaCs.Data; using Microsoft.CodeAnalysis; namespace Barotrauma.LuaCs.Services; public interface IPluginManagementService : IReusableService { /// /// Gets all types in searched that implement the type supplied. /// /// /// /// /// /// FluentResults.Result> GetImplementingTypes( bool includeInterfaces = false, bool includeAbstractTypes = false, bool includeDefaultContext = true); /// /// Tries to find the type given the fully qualified name and filters. /// /// /// /// /// /// Type GetType(string typeName, bool isByRefType = false, bool includeInterfaces = false, bool includeDefaultContext = true); /// /// /// /// /// /// FluentResults.Result ActivatePluginInstances(ImmutableArray executionOrder, bool excludeAlreadyRunningPackages = true); /// /// Loads the provided assembly resources in the order of their dependencies and intra-mod priority load order. /// /// /// Success/Failure and list of failed resources, if any. FluentResults.Result LoadAssemblyResources(ImmutableArray resources); /// /// Unloads all managed , , and s. /// /// Success of the operation.
Note: does not guarantee .NET runtime assembly unloading success.
FluentResults.Result UnloadManagedAssemblies(); }