private void RefreshUsedAssemblies(IAssemblyInfoCollection assemblies, HashSet <string> usedAssembly) { for (int i = assemblies.Count - 1; i >= 0; i--) { if (usedAssembly.Contains(assemblies[i].AssemblyName)) { continue; } assemblies.RemoveAt(i); } foreach (string assemblyName in usedAssembly) { IAssemblyInfo assemblyInfo = assemblies.FirstOrDefault(item => item.AssemblyName.Equals(assemblyName)); if (null != assemblyInfo) { continue; } assemblyInfo = _comInterfaceManager.GetAssemblyInfo(assemblyName); if (null == assemblyInfo) { ILogService logService = TestflowRunner.GetInstance().LogService; logService.Print(LogLevel.Error, CommonConst.PlatformLogSession, 0, $"Unloaded assembly '{assemblyName}' used."); I18N i18N = I18N.GetInstance(Constants.I18nName); throw new TestflowDataException(ModuleErrorCode.TypeDataError, i18N.GetFStr("InvalidAssemblyUsed", assemblyName)); } assemblies.Add(assemblyInfo); } }