private static void RunIsolatedTask(IMessageExchangeLink link, RunIsolatedTaskMessage message) { object result; try { var isolatedTask = (IsolatedTask)Activator.CreateInstance(message.IsolatedTaskType); result = isolatedTask.Run(message.Arguments); } catch (Exception ex) { link.Send(new IsolatedTaskFinishedMessage() { Id = message.Id, Exception = new ExceptionData(ex) }); return; } link.Send(new IsolatedTaskFinishedMessage() { Id = message.Id, Result = result }); }