private static RemoteJob DuplicateJob(RemoteJob job) { var stream = new MemoryStream(); job.Serialize(stream); stream.Position = 0; var remoteJob = (RemoteJob)Activator.CreateInstance(job.GetType()); remoteJob.Deserialize(stream); return(remoteJob); }