public CrossDomainTracer(AppDomain farDomain) { AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); this.remoteTracer = farDomain.CreateInstanceFrom(Assembly.GetExecutingAssembly().Location, typeof(CrossDomainTracer).FullName).Unwrap() as CrossDomainTracer; AppDomain.CurrentDomain.AssemblyResolve -= new ResolveEventHandler(CurrentDomain_AssemblyResolve); if (remoteTracer != null) { remoteTracer.StartListening(this); } }
public void StartListening(CrossDomainTracer farTracer) { this.remoteTracer = farTracer; this.remoteListener = new SynchronizedTraceListener(new TraceWriterHandler(Write)); Trace.Listeners.Add(this.remoteListener); }