コード例 #1
0
 public static ReflectionAssemblyLoader TryGet()
 {
     if (isInitialized)
     {
         return(instance);
     }
     instance      = TryInitialize();
     isInitialized = true;
     return(instance);
 }
コード例 #2
0
        /// <summary>
        /// Loads an assembly given a string, which is the AssemblyName
        /// </summary>
        public static Assembly Load(string name)
        {
            var ext = Path.GetExtension(name);

            if (ext.Equals(".dll", StringComparison.OrdinalIgnoreCase) ||
                ext.Equals(".exe", StringComparison.OrdinalIgnoreCase))
            {
                var fromLoader = ReflectionAssemblyLoader.TryGet()?.LoadFromAssemblyPath(Path.GetFullPath(name));
                if (fromLoader != null)
                {
                    return(fromLoader);
                }

                name = Path.GetFileNameWithoutExtension(name);
            }

            return(Assembly.Load(new AssemblyName {
                Name = name
            }));
        }