using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; using System.Reflection; using System.Runtime.CompilerServices; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using OneOf; // ReSharper disable InconsistentNaming namespace Barotrauma.LuaCs.Services; public interface IAssemblyManagementService : IReusableService { /// /// Searches for an assembly given it's fully qualified name, while excluding the contexts with the given Guids, if supplied. /// /// The assembly info. /// Guids of excluded contexts. /// On Success: The assembly.
On Failure: nothing.
FluentResults.Result GetLoadedAssembly(OneOf assemblyName, in Guid[] excludedContexts); /// /// Gets all for all service-managed assemblies. /// /// collection for all service-managed, and default if selected, assemblies, if any are found. Returns an empty collection otherwise. ImmutableArray GetDefaultMetadataReferences(bool includeDefaultContext = true); /// /// Returns all active, managed assembly loaders. /// ImmutableArray AssemblyLoaderServices { get; } }