/// <summary> /// When you enumerate a object, the offset within the object is returned. This offset might represent /// nested fields (obj.Field1.Field2). GetFieldOffset returns the first of these field (Field1), /// and 'remaining' offset with the type of Field1 (which must be a struct type). Calling /// GetFieldForOffset repeatedly until the childFieldOffset is 0 will retrieve the whole chain. /// </summary> /// <param name="fieldOffset">The field offset.</param> /// <param name="inner">if set to <c>true</c> [inner].</param> /// <param name="childField">The child field.</param> /// <param name="childFieldOffset">The child field offset.</param> /// <returns>true if successful. Will fail if it 'this' is an array type</returns> public bool GetFieldForOffset(int fieldOffset, bool inner, out IClrInstanceField childField, out int childFieldOffset) { var res = ClrType.GetFieldForOffset(fieldOffset, inner, out var outChildField, out childFieldOffset); childField = Converter.Convert(outChildField); return(res); }