Пример #1
0
        // Loads the assembly with a COFF based IMAGE containing
        // an emitted assembly. The assembly is loaded into a fully isolated ALC with resolution fully deferred to the AssemblyLoadContext.Default.
        // The second parameter is the raw bytes representing the symbol store that matches the assembly.
        public static Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore)
        {
            if (rawAssembly == null)
            {
                throw new ArgumentNullException(nameof(rawAssembly));
            }

            if (rawAssembly.Length == 0)
            {
                throw new BadImageFormatException(SR.BadImageFormat_BadILFormat);
            }

#if FEATURE_APPX
            if (ApplicationModel.IsUap)
            {
                throw new NotSupportedException(SR.Format(SR.NotSupported_AppX, "Assembly.Load(byte[], ...)"));
            }
#endif

            SerializationInfo.ThrowIfDeserializationInProgress("AllowAssembliesFromByteArrays",
                                                               ref s_cachedSerializationSwitch);

            AssemblyLoadContext alc = new IndividualAssemblyLoadContext();
            return(alc.InternalLoad(rawAssembly, rawSymbolStore));
        }
Пример #2
0
        // Loads the assembly with a COFF based IMAGE containing
        // an emitted assembly. The assembly is loaded into a fully isolated ALC with resolution fully deferred to the AssemblyLoadContext.Default.
        // The second parameter is the raw bytes representing the symbol store that matches the assembly.
        public static Assembly Load(byte[] rawAssembly, byte[]?rawSymbolStore)
        {
            if (rawAssembly == null)
            {
                throw new ArgumentNullException(nameof(rawAssembly));
            }

            if (rawAssembly.Length == 0)
            {
                throw new BadImageFormatException(SR.BadImageFormat_BadILFormat);
            }

            SerializationInfo.ThrowIfDeserializationInProgress("AllowAssembliesFromByteArrays",
                                                               ref s_cachedSerializationSwitch);

            AssemblyLoadContext alc = new IndividualAssemblyLoadContext("Assembly.Load(byte[], ...)");

            return(alc.InternalLoad(rawAssembly, rawSymbolStore));
        }