bool MarkAndVisit(mdr.DObject obj) { if (obj == null) { return(false); } string res = null; _dumpedObjects.TryGetValue(obj, out res); if (res != null) { if (res == "") { res = null; } _result = res; return(false); } else { _dumpedObjects.Add(obj, ""); obj.Accept(this); if (_result != null) { _dumpedObjects[obj] = _result; } return(true); } }