Exemplo n.º 1
0
        public void ClassLevelDescriptionGettingTest()
        {
            var desc1 = TypeReflections.GetDescription(EntryOne);
            var desc2 = TypeReflections.GetDescription(EntryTwo);
            var desc3 = TypeReflections.GetDescription(EntryThree);
            var desc4 = TypeReflections.GetDescription(Wrapper);
            var desc5 = TypeReflections.GetDescription(Wrapper, ReflectionOptions.Inherit);

            desc1.ShouldBe("NormalClassOne");
#if NETFRAMEWORK
            desc2.ShouldBe(EntryTwo.Name);
#else
            desc2.ShouldBe("NormalClassDisplayTwo");
#endif
            desc3.ShouldBe("NormalClassThree");
            desc4.ShouldBe(Wrapper.Name);
            desc5.ShouldBe("NormalClassOne");

            desc1 = TypeReflections.GetDescriptionOr(EntryOne, "OrMe");
            desc2 = TypeReflections.GetDescriptionOr(EntryTwo, "OrMe");
            desc3 = TypeReflections.GetDescriptionOr(EntryThree, "OrMe");
            desc4 = TypeReflections.GetDescriptionOr(Wrapper, "OrMe");
            desc5 = TypeReflections.GetDescriptionOr(Wrapper, "OrMe", ReflectionOptions.Inherit);

            desc1.ShouldBe("NormalClassOne");
#if NETFRAMEWORK
            desc2.ShouldBe("OrMe");
#else
            desc2.ShouldBe("NormalClassDisplayTwo");
#endif

            desc3.ShouldBe("NormalClassThree");
            desc4.ShouldBe("OrMe");
            desc5.ShouldBe("NormalClassOne");
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取枚举定义列表
        /// </summary>
        /// <param name="type">类型</param>
        /// <returns>返回枚举列表元组(名称、值、显示名、描述)</returns>
        public static IEnumerable <(string Name, int Value, string DisplayName, string Description)> GetEnumDefinitionList(this Type type)
        {
            var list     = new List <(string Name, int Value, string DisplayName, string Description)>();
            var attrType = type;

            if (!attrType.IsEnum)
            {
                return(null);
            }
            var names  = Enum.GetNames(attrType);
            var values = Enum.GetValues(attrType);
            var index  = 0;

            foreach (var value in values)
            {
                var name        = names[index];
                var field       = values.GetType().GetField(value.ToString());
                var displayName = TypeReflections.GetDisplayName(field);
                var des         = TypeReflections.GetDescription(field);
                (string Name, int Value, string DisplayName, string Description)item = new(
                    name,
                    Convert.ToInt32(value),
                    displayName.IsNullOrWhiteSpace() ? null : displayName,
                    des.IsNullOrWhiteSpace() ? null : des
                    );
                list.Add(item);
                index++;
            }

            return(list);
        }
Exemplo n.º 3
0
        public void PropertyLevelDescriptionGettingTest()
        {
            var desc1 = TypeReflections.GetDescription(PropertyOne);
            var desc2 = TypeReflections.GetDescription(PropertyTwo);
            var desc3 = TypeReflections.GetDescription(PropertyThree);

            desc1.ShouldBe("PropertyOne");
            desc2.ShouldBe("PropertyDisplayTwo");
            desc3.ShouldBe("PropertyThree");

            desc1 = TypeReflections.GetDescriptionOr(PropertyOne, "OrMe");
            desc2 = TypeReflections.GetDescriptionOr(PropertyTwo, "OrMe");
            desc3 = TypeReflections.GetDescriptionOr(PropertyThree, "OrMe");

            desc1.ShouldBe("PropertyOne");
            desc2.ShouldBe("PropertyDisplayTwo");
            desc3.ShouldBe("PropertyThree");
        }
Exemplo n.º 4
0
        public void ParameterLevelDescriptionGettingTest()
        {
            var desc1 = TypeReflections.GetDescription(ParameterOne);
            var desc2 = TypeReflections.GetDescription(ParameterTwo);
            var desc3 = TypeReflections.GetDescription(ParameterThree);

            desc1.ShouldBe("ArgOne");
            desc2.ShouldBe("ParamDesc");
            desc3.ShouldBe("ArgThree");

            desc1 = TypeReflections.GetDescriptionOr(ParameterOne, "OrMe");
            desc2 = TypeReflections.GetDescriptionOr(ParameterTwo, "OrMe");
            desc3 = TypeReflections.GetDescriptionOr(ParameterThree, "OrMe");

            desc1.ShouldBe("ArgOne");
            desc2.ShouldBe("ParamDesc");
            desc3.ShouldBe("ArgThree");
        }
Exemplo n.º 5
0
        public void MethodLevelDescriptionGettingTest()
        {
            var desc1 = TypeReflections.GetDescription(MethodOne);
            var desc2 = TypeReflections.GetDescription(MethodTwo);
            var desc3 = TypeReflections.GetDescription(MethodThree);

            desc1.ShouldBe("MethodOne");
            desc2.ShouldBe("MethodDisplayTwo");
            desc3.ShouldBe("MethodThree");

            desc1 = TypeReflections.GetDescriptionOr(MethodOne, "OrMe");
            desc2 = TypeReflections.GetDescriptionOr(MethodTwo, "OrMe");
            desc3 = TypeReflections.GetDescriptionOr(MethodThree, "OrMe");

            desc1.ShouldBe("MethodOne");
            desc2.ShouldBe("MethodDisplayTwo");
            desc3.ShouldBe("MethodThree");
        }
Exemplo n.º 6
0
 /// <summary>
 /// Get description via <see cref="System.ComponentModel.DescriptionAttribute"/> <br />
 /// 获取描述,使用 <see cref="System.ComponentModel.DescriptionAttribute"/> 特性设置描述
 /// </summary>
 /// <param name="enumType"></param>
 /// <param name="member"></param>
 /// <returns></returns>
 public static string DescriptionOf(Type enumType, object member)
 {
     return(TypeReflections.GetDescription(enumType, NameOf(enumType, member)));
 }
Exemplo n.º 7
0
 /// <summary>
 /// Get description via <see cref="System.ComponentModel.DescriptionAttribute"/> <br />
 /// 获取描述,使用 <see cref="System.ComponentModel.DescriptionAttribute"/> 特性设置描述
 /// </summary>
 /// <param name="member"></param>
 /// <typeparam name="TEnum"></typeparam>
 /// <returns></returns>
 public static string DescriptionOf <TEnum>(TEnum member) where TEnum : struct, Enum
 {
     return(TypeReflections.GetDescription <TEnum>(NameOf(member)));
 }