예제 #1
0
        public bool Load(FileList fileList, IDnSpyFileLoader dnSpyFileLoader)
        {
            const bool isReload = false;

            if (dnSpyFileLoader == null)
            {
                dnSpyFileLoader = new DefaultDnSpyFileLoader(fileTabManager.FileTreeView.FileManager);
            }
            if (!CanLoad)
            {
                return(false);
            }
            if (!CheckCanLoad(isReload))
            {
                return(false);
            }
            if (fileList != fileListManager.SelectedFileList)
            {
                SaveCurrentFilesToList();
            }

            NotifyBeforeLoad(isReload);
            using (DisableSaveToList()) {
                fileTabManager.CloseAll();
                fileTabManager.FileTreeView.FileManager.Clear();
                dnSpyFileLoader.Load(fileList.Files.Select(a => new FileToLoad(a)));
            }
            NotifyAfterLoad(isReload);

            GC.Collect();
            GC.WaitForPendingFinalizers();
            return(true);
        }