using System;
using System.IO;
using System.Reflection;
namespace Atomic.Bootstrap
{
///
/// A context in which assemblies can be loaded.
///
public interface IAssemblyLoadContext : IDisposable
{
///
/// Load an assembly by name.
///
/// The name of the assembly.
/// The loaded assembly.
Assembly Load(AssemblyName assemblyName);
///
/// Loads the assembly located at the provided file system path.
///
/// The fully qualified path of the file to load.
/// The loaded assembly.
Assembly LoadFile(string path);
///
/// Loads the assembly with a common object file format (COFF)-based image containing an emitted assembly, optionally including symbols for the assembly.
///
/// The stream representing the assembly.
/// The stream representing the symbols.
/// The loaded assembly.
Assembly LoadStream(Stream assemblyStream, Stream assemblySymbols);
}
}