/// <summary> /// Dispose of the <paramref name="host"/>. /// </summary> /// <param name="host"></param> /// <returns></returns> internal static IClrObjectHost DisposeHost(this IClrObjectHost host) { foreach (var o in host.ClrCreatedObjects.OfType <IDisposable>().ToArray()) { o.Dispose(); } host.ClrCreatedObjects.Clear(); return(host); }
/// <summary> /// Tracks the <paramref name="obj"/> given the <paramref name="host"/>. Returns the /// <paramref name="obj"/> for use afterwards. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <param name="host"></param> /// <returns></returns> public static T TrackClrObject <T>(this T obj, IClrObjectHost host) { host.ClrCreatedObjects.Add(obj); return(obj); }