protected virtual bool ShouldIgnoreType(Type instanceType) { bool ignore = instanceType.IsAbstract || instanceType.IsInterface; if (ignore && instanceType.IsGenericType) { ignore = !IsGenericList(instanceType); } return ignore; }