加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从Nullable类型的反射中获取PropertyType.Name

发布时间:2020-12-15 03:52:09 所属栏目:百科 来源:网络整理
导读:我想使用反射获取属性类型. 这是我的代码 var properties = type.GetProperties();foreach (var propertyInfo in properties){ model.ModelProperties.Add( new KeyValuePairType,string (propertyInfo.PropertyType.Name,propertyInfo.Name) );} 这个代码pr
我想使用反射获取属性类型.
这是我的代码
var properties = type.GetProperties();
foreach (var propertyInfo in properties)
{
     model.ModelProperties.Add(
                               new KeyValuePair<Type,string>
                                               (propertyInfo.PropertyType.Name,propertyInfo.Name)
                              );
}

这个代码propertyInfo.PropertyType.Name是好的,但如果我的属性类型是Nullable我得到这个Nullable’1字符串,如果写FullName如果得到这个搅拌System.Nullable1 [[System.DateTime,mscorlib,版本= 4.0.0.0,Culture =中立,PublicKeyToken = b77a5c561934e089]]

解决方法

更改代码以查找可空类型,在这种情况下,将PropertyType作为第一个通用的agruement:
var propertyType = propertyInfo.PropertyType;

if (propertyType.IsGenericType &&
        propertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
    {
      propertyType = propertyType.GetGenericArguments()[0];
    }

model.ModelProperties.Add(new KeyValuePair<Type,string>
                        (propertyType.Name,propertyInfo.Name));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读