Inheritance: IDebugProperty2
        private DEBUG_PROPERTY_INFO[] CreateMultiDimArrayPropertyInfos(enum_DEBUGPROP_INFO_FLAGS dwFields, ArrayMirror array)
        {
            var arrayValues = new DEBUG_PROPERTY_INFO[array.Length];

            var dimIndex      = new int[array.Rank];
            var dimLowerBound = new int[array.Rank];
            var dimUpperBound = new int[array.Rank];

            for (int dim = 0; dim < array.Rank; dim++)
            {
                dimIndex[dim]      = array.GetLowerBound(dim);
                dimLowerBound[dim] = array.GetLowerBound(dim);
                dimUpperBound[dim] = array.GetLowerBound(dim) + array.GetLength(dim) - 1;
            }

            for (int i = 0; i < array.Length; i++)
            {
                var valueAtIndex = array.GetValues(i, 1).First();
                arrayValues[i] = new MonoProperty(_stackFrame, _currentMirror, array.Type.GetElementType(), valueAtIndex, string.Join(",", dimIndex)).GetDebugPropertyInfo(dwFields);

                for (int dim = array.Rank - 1; dim >= 0; dim--)
                {
                    if (dimIndex[dim] < dimUpperBound[dim])
                    {
                        dimIndex[dim]++;
                        break;
                    }
                    else
                    {
                        dimIndex[dim] = dimLowerBound[dim];
                    }
                }
            }

            return(arrayValues);
        }
 public AD7Expression(MonoProperty monoProperty)
 {
     _monoProperty = monoProperty;
 }
Exemplo n.º 3
0
 public AD7Expression(MonoProperty monoProperty)
 {
     _monoProperty = monoProperty;
 }