开发者

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

开发者 https://www.devze.com 2023-01-06 05:57 出处:网络
Using reflection I\'d like to retrieve only the bu开发者_StackOverflow中文版ilt-in data type properties from a C# object. Is there a better way to do that then using a bunch of || (ors) in a Where met

Using reflection I'd like to retrieve only the bu开发者_StackOverflow中文版ilt-in data type properties from a C# object. Is there a better way to do that then using a bunch of || (ors) in a Where method specifying the types I am interested in?

Type sourceType = typeof(TSource);

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


They are all in the System namespace, so you could at least filter to namespace, other than that, at least the list isn't too long. You wouldn't chain Where's either, you'd use ||'s, that code won't work.


Are you looking for integral types to the BCL? Or value types only? (IE integer, char, etc)

If so, you could test for pi.PropertyType.IsPrimitive() and then test for string type as part of the or clause...

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

精彩评论

暂无评论...
验证码 换一张
取 消