public void CloseUsingExcel() { //TODO: Процесс все равно остается в диспетчере задач //Возможно нужно освобождать вообще все объекты, которые использовались - https://stackoverflow.com/a/28080347. ЭТО НЕ ПОМОГАЕТ //При этом процесс исчезает при нормальном закрытии Navis if (excelWorkSheets != null) { foreach (Excel._Worksheet ws in excelWorkSheets) { //System.Runtime.InteropServices.Marshal.ReleaseComObject(ws); } } //Закрытие предыдущей используемой книги Excel if (OWB != null) { try { OWB.Close(false); } catch { } //System.Runtime.InteropServices.Marshal.ReleaseComObject(OWB); OWB = null; } //Закрытие Excel if (OXL != null) { try { OXL.Quit(); } catch { } //System.Runtime.InteropServices.Marshal.ReleaseComObject(OXL); OXL = null; } }
public void FillMandantAndFactory(WMSBusinessObject entity) { var obj = entity as OWBPos; if (obj == null) { return; } if (obj.OWBID_R == null) { obj.MandantID = null; obj.FactoryID_R = null; return; } OWB owb = null; using (var mgr = GetManager <OWB>()) owb = mgr.Get(obj.OWBID_R); obj.MandantID = owb == null ? null : owb.MandantID; obj.FactoryID_R = owb == null ? null : owb.FactoryID_R; }