internal CorHandleValue GetHandle(CorValue val) { CorHandleValue handleVal = null; if (!handles.TryGetValue(val.Address, out handleVal)) { handleVal = val.CastToHandleValue(); if (handleVal == null) { // Create a handle CorReferenceValue refVal = val.CastToReferenceValue(); CorHeapValue heapVal = refVal.Dereference().CastToHeapValue(); handleVal = heapVal.CreateHandle(CorDebugHandleType.HANDLE_STRONG); } handles.Add(val.Address, handleVal); } return(handleVal); }