Esempio n. 1
0
        public static IEnumerable <ClrObject> EnumerateClrObjects(this ClrHeap heap, IEnumerable <ClrType> types)
        {
            if (types == null)
            {
                return(heap.EnumerateClrObjects());
            }

            IList <ClrType> castedTypes = types as IList <ClrType> ?? types.ToList();

            if (castedTypes.Count == 0)
            {
                return(heap.EnumerateClrObjects());
            }

            if (castedTypes.Count == 1)
            {
                return(heap.EnumerateClrObjects(castedTypes[0]));
            }

            HashSet <ClrType> set = new HashSet <ClrType>(castedTypes);

            return(from address in heap.EnumerateObjects()
                   let type = heap.GetSafeObjectType(address)
                              where set.Contains(type)
                              select new ClrObject(address, type));
        }
Esempio n. 2
0
        public static IEnumerable <ClrObject> EnumerateClrObjects(this ClrHeap heap, IEnumerable <string> typeNames)
        {
            if (typeNames == null)
            {
                return(heap.EnumerateClrObjects());
            }

            IList <string> castedTypes = typeNames as IList <string> ?? typeNames.ToList();

            if (castedTypes.Count == 0)
            {
                return(heap.EnumerateClrObjects());
            }

            if (castedTypes.Count == 1)
            {
                return(heap.EnumerateClrObjects(castedTypes[0]));
            }

            HashSet <string> set = new HashSet <string>(castedTypes, StringComparer.OrdinalIgnoreCase);

            return(from address in heap.EnumerateObjects()
                   let type = heap.GetSafeObjectType(address)
                              where type != null && set.Contains(type.Name)
                              select new ClrObject(address, type));
        }
Esempio n. 3
0
 public static IEnumerable <ClrObject> EnumerateClrObjects(this ClrHeap heap, params string[] typeNames)
 {
     return(heap.EnumerateClrObjects((IEnumerable <string>)typeNames));
 }
Esempio n. 4
0
 public static IEnumerable <ClrObject> EnumerateClrObjects(this ClrHeap heap, params ClrType[] types)
 {
     return(heap.EnumerateClrObjects((IEnumerable <ClrType>)types));
 }