/// <summary> /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// </summary> public void Dispose() { if (this.textWriter != null) { this.textWriter.Flush(); this.textWriter.Dispose(); } if (this.proxyDomain != null) { this.proxyDomain.Dispose(); this.proxyDomain = null; } if (this.delegateTraceListener != null) { if (Trace.Listeners.Contains(this.delegateTraceListener)) { Trace.Listeners.Remove(this.delegateTraceListener); } } if (this.appDomainHelper != null) { this.appDomainHelper.Dispose(); this.appDomainHelper = null; } }
/// <summary> /// Initializes a new instance of the <see cref="AssemblyLoader" /> class. /// </summary> /// <param name="logger">The logger.</param> public AssemblyLoader(IMessageLogger logger) { this.textWriter = new TextWriterLogger(logger); this.appDomainHelper = new AppDomainHelper(); this.delegateTraceListener = new DelegateTraceListener( message => logger.SendMessage(TestMessageLevel.Informational, message)); this.proxyDomain = this.appDomainHelper.CreateInstance <ProxyLoader>(); }