public Sandbox() { PermissionSet ps = new PermissionSet(PermissionState.None); ps.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution)); try { domain = AppDomain.CreateDomain("Sandbox", AppDomain.CurrentDomain.Evidence, AppDomain.CurrentDomain.SetupInformation, ps); var tp = typeof(MyInit); var obj = (MyInit)domain.CreateInstanceAndUnwrap(tp.Assembly.FullName, tp.FullName); var myCallBack = new MyCallBack(); myCallBack.Generated += new EventHandler(myCallBack_Generated); obj.Subscribe(myCallBack); obj.GenerateCallBackEvent(); } catch (Exception e) { Trace.WriteLine(e.ToString()); throw e; } }
public void Subscribe(MyCallBack callback) { //executed on sandbox domain this.callback = callback; }