コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
                }
            }
        }