public void Process(Prüfungsauftrag auftrag) { Trace.TraceInformation("Host prüft Beitrag: {0} / {1} in AppDomain {2}", new object[] { auftrag.Host.GetType().FullName, Path.GetFileName(auftrag.Auftritt.Beitragsverzeichnis), AppDomain.CurrentDomain.FriendlyName }); try { auftrag.Host.Anfang += this.Anfang; auftrag.Host.Ende += this.Ende; auftrag.Host.Status += this.Status; auftrag.Host.Fehler += this.Fehler; auftrag.Host.Prüfen(auftrag.Beitrag, auftrag.Auftritt.Wettbewerbspfad, auftrag.Auftritt.Beitragsverzeichnis); } catch (Exception fehler) { this.Fehler(new Prüfungsfehler { Fehler = fehler }); } finally { auftrag.Host.Anfang -= this.Anfang; auftrag.Host.Ende -= this.Ende; auftrag.Host.Status -= this.Status; auftrag.Host.Fehler -= this.Fehler; } }
public void Process(Prüfungsauftrag auftrag) { Trace.TraceInformation("Host instanzieren: {0}; {1}", new object[] { auftrag.HostReferenz.AssemblyName, auftrag.HostReferenz.TypeName }); auftrag.Host = (IHost)Activator.CreateInstance(auftrag.HostReferenz.AssemblyName, auftrag.HostReferenz.TypeName).Unwrap(); this.Result(auftrag); }
public void Process(Prüfungsauftrag auftrag) { Trace.TraceInformation("Beitrag in AppDomain laden: {0}, {1}, {2} in {3}", new object[] { auftrag.Auftritt.Beitragsverzeichnis, this._submission_assembly_filename, this._submission_typename, AppDomain.CurrentDomain.FriendlyName }); auftrag.Beitrag = Activator.CreateInstance(this._submission_assembly_filename, this._submission_typename).Unwrap(); this.Result(auftrag); }