/// <summary> /// Loads a new assembly! /// </summary> /// <param name="assembly"></param> /// <returns></returns> public async Task LoadAssembly(Assembly assembly) { var asmBytes = AssemblyUtils.GetAssemblyBinary(assembly); var asmVersion = AssemblyUtils.GetAssemblyVersion(assembly); var asmFullname = assembly.FullName; await LoadAssembly(asmFullname, asmVersion, asmBytes); }
/// <summary> /// Loads a new assembly! /// </summary> /// <param name="targetType"></param> /// <returns></returns> public async Task LoadAssembly(Type targetType, bool loadReferences = true) { var asmVersion = AssemblyUtils.GetAssemblyVersion(targetType); var asmFullname = AssemblyUtils.GetAssemblyName(targetType); var asmBytes = AssemblyUtils.GetAssemblyBinary(targetType); await LoadAssembly(asmFullname, asmVersion, asmBytes); if (loadReferences) { var references = AssemblyUtils.GetNonSystemReferencedAssemblies(asmFullname, 0, 3); foreach (var @ref in references) { var asm = Assembly.Load(@ref); await LoadAssembly(asm); } } }