public WorkbookContext GetWorkBookContext(Excel.Workbook workbook) { if (null == workbook) { throw new ArgumentNullException("workbook"); } bool isNotCurrent = false; WorkbookContext workbookContext = null; if (null == this.currentWorkbookContext) { isNotCurrent = true; } else if (this.currentWorkbookContext.Id != WorkbookContext.GetContextId(workbook)) { isNotCurrent = true; } if (isNotCurrent) { workbookContext = new WorkbookContext(workbook); } else { workbookContext = this.currentWorkbookContext; workbookContext.Update(); } return(workbookContext); }
private void Purge() { var now = DateTime.Now; if ((now - this.purgeTime).TotalHours < 1) { return; } this.purgeTime = now; foreach (Excel.Workbook workbook in App.Excel.Workbooks) { var workbookContextId = WorkbookContext.GetContextId(workbook); if (!this.dic.ContainsKey(workbookContextId)) { this.dic.Remove(workbookContextId); } } }