Exemplo n.º 1
0
        public static Assembly LoadFile(string path)
        {
            AppDomain.CheckLoadFileSupported();

            Assembly result = null;

            if (path == null)
            {
                throw new ArgumentNullException(nameof(path));
            }

            if (PathInternal.IsPartiallyQualified(path))
            {
                throw new ArgumentException(SR.Argument_AbsolutePathRequired, nameof(path));
            }

            string normalizedPath = Path.GetFullPath(path);

            lock (s_loadfile)
            {
                if (s_loadfile.TryGetValue(normalizedPath, out result))
                {
                    return(result);
                }
                AssemblyLoadContext alc = new IndividualAssemblyLoadContext();
                result = alc.LoadFromAssemblyPath(normalizedPath);
                s_loadfile.Add(normalizedPath, result);
            }
            return(result);
        }
Exemplo n.º 2
0
        public static Assembly LoadFile(String path)
        {
            Contract.Ensures(Contract.Result <Assembly>() != null);
            Contract.Ensures(!Contract.Result <Assembly>().ReflectionOnly);

            AppDomain.CheckLoadFileSupported();

            Assembly result = null;

            if (path == null)
            {
                throw new ArgumentNullException(nameof(path));
            }

            if (PathInternal.IsPartiallyQualified(path))
            {
                throw new ArgumentException(Environment.GetResourceString("Argument_AbsolutePathRequired"), nameof(path));
            }

            string normalizedPath = Path.GetFullPath(path);

            lock (s_loadfile)
            {
                if (s_loadfile.TryGetValue(normalizedPath, out result))
                {
                    return(result);
                }
                AssemblyLoadContext alc = new IndividualAssemblyLoadContext();
                result = alc.LoadFromAssemblyPath(normalizedPath);
                s_loadfile.Add(normalizedPath, result);
            }
            return(result);
        }