public void Process(Sandbox sandbox)
 {
     try
     {
         this._runnerFactory.Run(sandbox.SandboxedAppDomain, this._sandboxMainboardAssemblyName, this._sandboxMainboardTypeName, new object[]
         {
             new Prüfungsauftrag
             {
                 Auftritt = sandbox.Auftritt,
                 HostReferenz = new HostReferenz
                 {
                     AssemblyName = sandbox.HostTyp.Assembly.FullName.Split(new char[]
                     {
                         ','
                     })[0],
                     TypeName = sandbox.HostTyp.FullName
                 }
             }
         });
     }
     finally
     {
         AppDomain.Unload(sandbox.SandboxedAppDomain);
     }
 }
예제 #2
0
 public void Process(Sandbox sandbox)
 {
     Trace.TraceInformation("AppDomain erzeugen");
     PermissionSet permissionSet = AppDomain_erzeugen.Create_permission_set_for_sandbox_AppDomain(sandbox.Auftritt.Wettbewerbspfad + "\\" + sandbox.Auftritt.Beitragsverzeichnis);
     AppDomainSetup info = AppDomain_erzeugen.Create_setup_for_AppDomain(sandbox.Auftritt);
     StrongName strongName = AppDomain_erzeugen.Get_strong_name_of_assembly(typeof(AppDomainRunner));
     StrongName strongName2 = AppDomain_erzeugen.Get_strong_name_of_assembly(sandbox.HostTyp);
     sandbox.SandboxedAppDomain = AppDomain.CreateDomain("Sandbox", null, info);
     this.Result(sandbox);
 }
예제 #3
0
 public void Process(Auftritt auftritt)
 {
     Trace.TraceInformation("Host Typ bestimmen: {0}", new object[]
     {
         auftritt.Wettbewerbspfad
     });
     string text = auftritt.Wettbewerbspfad + "\\" + this._host_assembly_filename;
     Assembly hostAssm = Assembly.LoadFile(text);
     Type[] array = Host_Typ_bestimmen.Host_Typ_in_Assembly_finden(hostAssm);
     Host_Typ_bestimmen.Host_Typ_validieren(array, text);
     Sandbox obj = new Sandbox
     {
         Auftritt = auftritt,
         HostTyp = array[0]
     };
     this.Result(obj);
 }