有点难,反射相比较两个数据类

zj_2009 2012-08-29 10:19:50
需求:日志记录两个类的不同值。

两个相同的Product 类(B是A的子类), 我要将两个Product类全部的属性值,包括它的全部子类的属性一一相比较,看看这两个Product类中哪些属性的值不同,然后将不同的属性以及它的值通过字符串或者其他方式返回。
最好Product类的属性上有特性,标识该属性名称及是否比较,这样记录的时候更方便一些。
比如: class A { public string name ; public list<B> lstinfo; }
class B{ public string InfoName; }

注意: 访方法是通用的,数据类型不单单是Product 类, 应该要通过反射来完成。
...全文
68 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zj_2009 2012-08-29
  • 打赏
  • 举报
回复

好吧, 去掉list的需求,就单纯的比较类里面的属性值。
杰拉尔 2012-08-29
  • 打赏
  • 举报
回复
反射遍历下就行了 list集合我感觉 没必要在深究 因为就算是都叫LIST<XX> XX的命名空间也不不一样的所以可以直接列出来用不着递归只要一级就行了
zj_2009 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

是啊,得用反射,而且需要递归。
有些属性还不好比较,比如list集合,怎么样才算相同呢?

所以把这个做成“通用”根本不是好的设计。

你应该让能比较的类去实现IEquatable接口,告诉调用者,这是可以比较的。并且明确比较的规则。
[/Quote]

求解决方案。
threenewbee 2012-08-29
  • 打赏
  • 举报
回复
是啊,得用反射,而且需要递归。
有些属性还不好比较,比如list集合,怎么样才算相同呢?

所以把这个做成“通用”根本不是好的设计。

你应该让能比较的类去实现IEquatable接口,告诉调用者,这是可以比较的。并且明确比较的规则。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧