public void ReflectionCollTest()
        {
            Func <MemberInfo, bool> filter = member => member.MemberType == MemberTypes.TypeInfo ||
                                             member.MemberType == MemberTypes.Field ||
                                             member.MemberType == MemberTypes.Property;
            var t          = typeof(NormalValueTypeClass);
            var m0         = (MemberInfo)t;
            var allMembers = t.GetMembers().Where(filter).ToList();

            allMembers.ShouldNotBeNull();
            allMembers.ShouldNotBeEmpty();
            var m01 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int32EnumV1));
            var m02 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int32EnumV2));
            var m03 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int32EnumV3));
            var m04 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int32EnumV4));
            var m05 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int32EnumD1));
            var m06 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int32EnumD2));
            var m07 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int32EnumA1));
            var m08 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int32EnumA2));
            var m09 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int32EnumA3));
            var m10 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int32EnumA4));

            m01.MemberType.ShouldBe(MemberTypes.Property);
            m02.MemberType.ShouldBe(MemberTypes.Field);
            m03.MemberType.ShouldBe(MemberTypes.Property);
            m04.MemberType.ShouldBe(MemberTypes.Field);
            m05.MemberType.ShouldBe(MemberTypes.Property);
            m06.MemberType.ShouldBe(MemberTypes.Field);
            m07.MemberType.ShouldBe(MemberTypes.Property);
            m08.MemberType.ShouldBe(MemberTypes.Field);
            m09.MemberType.ShouldBe(MemberTypes.Property);
            m10.MemberType.ShouldBe(MemberTypes.Field);

            TypeReflections.IsCollection(m0).ShouldBeFalse();
            TypeReflections.IsCollection(m01).ShouldBeTrue();
            TypeReflections.IsCollection(m02).ShouldBeTrue();
            TypeReflections.IsCollection(m03).ShouldBeTrue();
            TypeReflections.IsCollection(m04).ShouldBeTrue();
            TypeReflections.IsCollection(m05).ShouldBeTrue();
            TypeReflections.IsCollection(m06).ShouldBeTrue();
            TypeReflections.IsCollection(m07).ShouldBeTrue();
            TypeReflections.IsCollection(m08).ShouldBeTrue();
            TypeReflections.IsCollection(m09).ShouldBeTrue();
            TypeReflections.IsCollection(m10).ShouldBeTrue();
        }