private void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { //Get the task instance interface IEdmTaskInstance inst = poCmd.mpoExtra as IEdmTaskInstance; if (inst == null) { return; } try { AutoCADTaskSettings taskSettings; string settings = inst.GetValEx(AutoCADTaskSettings.Acadtask_Settings) as string; if (!string.IsNullOrEmpty(settings)) { taskSettings = JsonConvert.DeserializeObject <AutoCADTaskSettings>(settings); } else { taskSettings = new AutoCADTaskSettings(); } var tas = new AutoCADTaskAddin(poCmd, ppoData, taskSettings); tas.runTask(); } catch (System.Runtime.InteropServices.COMException ex) { log.Error(ex); inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, ex.ErrorCode, "The test task failed!"); } catch (Exception ex) { log.Error(ex); inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, 0, "", "The test task failed!"); } }