Example #1
0
        public virtual IEnumDebugProperty EnumChildren(EnumerationKind kind, int radix, int timeout, bool allowFuncEval)
        {
            IDebugClassType classType = this.type as IDebugClassType;

            if (classType != null)
            {
                IEnumDebugTypes enumBaseClasses = classType.GetBaseClasses();
                IEnumSymbol     enumMembers     = classType.GetMembers(null, true, SymbolKind.Field, SymbolModifiers.All);
                return(new AggregateEnumDebugProperty(
                           new EnumDebugPropertySymbols(enumMembers, this, this.containerValue, this.evaluator),
                           new EnumDebugPropertyTypes(enumBaseClasses, this, containerValue, this.evaluator)));
            }
            return(null);
        }
Example #2
0
        public override IEnumDebugProperty EnumChildren(EnumerationKind kind, int radix, int timeout, bool allowFuncEval)
        {
            if (this.value == null || this.value.IsNullReference())
            {
                return(null);
            }
            IDebugClassType classType = (IDebugClassType)this.value.RuntimeType();

            if (classType.Name.IndexOf("closure") >= 0)
            {
                IEnumSymbol closureSymbol = classType.GetClosureClassMembers(this.value);
                return(new EnumDebugPropertySymbols(closureSymbol, this, this.value, this.evaluator));
            }
            else
            {
                IEnumSymbol     enumSymbol      = classType.GetMembers(null, true, SymbolKind.Field | SymbolKind.Property, SymbolModifiers.All);
                IEnumDebugTypes enumBaseClasses = classType.GetBaseClasses();
                return(new AggregateEnumDebugProperty(
                           new EnumDebugPropertyTypes(enumBaseClasses, this, this.value, this.evaluator),
                           new EnumDebugPropertySymbols(enumSymbol, this, this.value, this.evaluator)));
            }
        }