xianhc / apevolo-api

.Net 8 、SqlSugar ORM、Vue 2.X、RBAC、前后端分离的开箱则用的企业级中后台权限管理系统
https://www.apevolo.com
Apache License 2.0
809 stars 74 forks source link

\Helper\RequiredHelper.cs 中(dynamic)value的问题 #15

Closed huster-songtao closed 2 years ago

huster-songtao commented 2 years ago
            var value = pi.GetValue(entity, null);
            var dtlType = pi.PropertyType.Name;
            if (dtlType == "Int32")
            {
                if ((dynamic)value < 0)
                {
                    isTrue = false;
                    break;
                }
            }

            if (dtlType == "List`1")
            {
                var list = (dynamic)value;
                if (list == null || list.Count < 1)
                {
                    isTrue = false;
                    break;
                }
            }

微信截图_20220405021254 微信截图_20220405021316

除了这个null的问题外,其实这里的逻辑是不是有点小问题?

既然是用 ApeVoloRequiredAttribute 来判断Required的逻辑

            if (value == null)
            {
                isTrue = false;
                break;
            }

这个代码是否应该放到 var value = pi.GetValue(entity, null);的后面?

xianhc commented 2 years ago

@huster-songtao 这个应该没啥问题的 int永不为空,但也调整了非空判断顺序,谢谢