예제 #1
0
 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);
     }
 }