protected internal IJob GetJob(JobInfoPayload info) { var assembly = Assembly.LoadFrom(info.JobClassName + @"\" + info.JobClassName + ".dll"); var assemblyType = assembly.GetType(info.AssemblyName); var job = Activator.CreateInstance(assemblyType) as IJob; if (job == null) { throw new Exception("Unable to create job: " + info.JobClassName); } return(job); }
protected internal void SetupInstance(JobInfoPayload info) { var ads = new AppDomainSetup { ApplicationBase = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName, DisallowBindingRedirects = false, DisallowCodeDownload = true, PrivateBinPath = info.JobClassName, ApplicationName = info.JobName, }; JobAppDomain = AppDomain.CreateDomain(info.JobName, null, ads); JobHandler = (BaseHandler)JobAppDomain.CreateInstanceAndUnwrap(typeof(BaseHandler).Assembly.FullName, typeof(BaseHandler).FullName); }