【问题标题】:How to check equality of collection type properties, using reflection in C#如何使用 C# 中的反射检查集合类型属性的相等性
【发布时间】:2011-07-25 11:23:48
【问题描述】:

我有一个包含许多属性的类,其中一些是自定义类型的列表。 我需要比较这个类的两个实例,并获取它们中不相等的属性列表。

我使用自定义属性(对于我想在比较中包含的相关属性)设计它,并使用IEquatable,但对于我遇到问题的列表。我打算使用SequenceEqual,但它需要列表的类型(IEnumerable<SomeType>),我没有也不知道如何设置。我知道GetElementTypeGetGenericArguments 方法,但我不能在IEnumerable<> 中使用它们来使SequenceEqual 工作。

我正在寻找适合这种场景的最佳设计,以及如何实际操作的代码示例。

【问题讨论】:

标签: c# .net reflection comparison


【解决方案1】:

此 Codeplex 项目使用反射对任意两个 .NET 对象进行深度比较: http://comparenetobjects.codeplex.com/

项目说明

使用反射对任意两个 .NET 对象进行深度比较。显示两个对象之间的差异。

兼容性

与 .NET Framework 3.5 及更高版本兼容。 2.0 中的新功能,可移植类库版本适用于 .NET 4.0+、Silverlight 5+、Windows Phone 8+、Windows RT 8+、Xamarin iOS 和 Xamarin Droid

NuGet 包

http://www.nuget.org/packages/CompareNETObjects

【讨论】:

    猜你喜欢
    • 2014-04-22
    • 2019-03-17
    • 2018-09-27
    • 2010-09-17
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多