public void Dispose()
		{
			var obj = new DeepObject();
			dynamic d = obj;
			d.Name.First = "James";
			d.Name.Last = "Bond";

			obj.Dispose();
			ConsoleEx.WriteLine("\n- Disposed: {0}", obj);
			Assert.IsTrue(obj.IsDisposed);
			Assert.AreEqual(0, obj.DeepCount());

			obj.Dispose();
			ConsoleEx.WriteLine("- Disposed Twice: {0}", obj);
		}