繁体   English   中英

在C#中,有一种方法可以使用反射检索内置数据类型属性

[英]In C# is there a way retrieve only built-in data type properties using reflection

使用反射我只想从C#对象中检索内置数据类型属性。 有没有更好的方法,然后使用一堆|| (ors)在Where方法中指定我感兴趣的类型?

Type sourceType = typeof(TSource);

var props = sourceType.GetProperties()
    .Where(pi => pi.PropertyType == typeof(int)
              || pi.PropertyType == typeof(string));    // .... etc.

它们都在System命名空间中,因此您至少可以过滤到命名空间,除此之外,至少列表不会太长。 你不会链接Where's,你使用||的,代码将不起作用。

你在寻找BCL的整体类型吗? 或仅限值类型? (IE整数,字符等)

如果是这样,你可以测试pi.PropertyType.IsPrimitive()然后测试字符串类型作为or子句的一部分...

var props = sourceType.GetProperties()
    .Where(pi => .PropertyType.IsPrimitive
              || pi.PropertyType == typeof(string))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM