美文网首页
C#中反射和泛型的运用

C#中反射和泛型的运用

作者: 晚幕榴裳 | 来源:发表于2018-01-08 21:33 被阅读48次

今天在做项目开发的时候,遇到了一个棘手的问题,因为是调用别人的接口返回的数据,订单的可订和预订,其中一部分反序列化以后的内容是相同的,但是因为在不同的class中都做了定义,这样在处理这一部分类型的时候,因为在两个类中,所以就算逻辑是一样的,也没有办法共用同一个方法,这个时候我就想到是否可以把List实体用泛型来实现呢,这样我就定义了一个泛型的方法.但是因为对反射的内容不是很熟悉,导致一直拿不到自己想要的属性结果,也没有办法用lambda表达式对结果集进行过滤。

错误代码尝试:

直接编译都过不了,因为T默认是继承object的,所以我直接拿对应的后面的Charge属性是拿不到的,因为对反射的内容不熟悉,所以一直写不正确,后面看了别人的写法:

大牛给写的例子

看了别人的写法才知道自己写的代码问题所在,做了调整最终实现了功能。

总结:

1.通过反射拿到函数内需要判定的属性

2.判定传进来的泛型是否拥有这个属性只需要判断GetProperty返回的对象是否为空就知道有没有这个属性了

3.通过prop对象的GetValue函数获得指定对象的该属性的值, GetValue第二个参数通常传null, 如果是索引性属性,则传索引值

4. GetValue返回的值就是这个属性在这个对象里的值了, 然后就该做什么就做什么

相关文章

  • C#中反射和泛型的运用

    今天在做项目开发的时候,遇到了一个棘手的问题,因为是调用别人的接口返回的数据,订单的可订和预订,其中一部分反序列化...

  • 目录 - C#

    总目录 C# 第01局:泛型 C# 第02局:反射 C# 第03局:特性 C# 第04局:委托 C# 第05局:事...

  • C#基础提升系列——C#集合

    C#集合 有两种主要的集合类型:泛型集合和非泛型集合。 泛型集合被添加在 .NET Framework 2.0 中...

  • 泛型边界

    extends 和 super关键字运用在泛型中,主要作用是限制泛型的边界,确定在泛型方法或者泛型类中可是利用泛型...

  • 泛型

    ORM实现有反射、泛型、代码生成等几种常见方式,或者单用,或者混合。 c#的泛型非常强大,应用于ORM时,可能有些...

  • 泛型

    ORM实现有反射、泛型、代码生成等几种常见方式,或者单用,或者混合。 c#的泛型非常强大,应用于ORM时,可能有些...

  • C#基础提升系列——C#泛型

    C# 泛型(Generics) 泛型概述 泛型是C#编程语言的一部分,它与程序集中的IL(Intermediate...

  • C#---API-02(Application Programm

    一、泛型概述 1. 泛型 1.1 泛型是什么? 泛型(generic)是C#语言2.0和通用语言运行时(CLR)得...

  • 泛型 & 注解 & Log4J日志组件

    掌握的知识 : 基本用法、泛型擦除、泛型类/泛型方法/泛型接口、泛型关键字、反射泛型(案例) 泛型 概述 : 泛型...

  • C#里 泛型Where和 new()的使用

    在C#中,泛型的使用非常广泛,为了泛型调用安全,经常需要对所使用的类型进行约束。在对泛型的约束中,最常使用的关键字...

网友评论

      本文标题:C#中反射和泛型的运用

      本文链接:https://www.haomeiwen.com/subject/rurinxtx.html