我正在为审计日志记录(谁更改什么成员,何时)进行“深度比较”。我正在使用反射,递归到结构中并进行比较。尽管包含字典的人遇到了问题。“深度比较”字典
我可以通过typeof(IDictionary).IsAssignableFrom(memberType)
检测到成员是字典。然后,我的计划是收集这两个对象中存在的密钥,并继续对这些对象进行递归。但是,IDictionary.Keys
是一个ICollection
,它不被LINQ扩展。不知道钥匙的类型,我怎么能做到这一点?
也许这种方法不是最佳的(我不是那种在泛型/反射组合中经验丰富的),我应该以另一种方式做到这一点吗?
你的问题与LINQ有什么关系? – Seb 2012-01-18 15:19:13
@DavidM:只有模板版本,不是'IEnumerable'。在我的问题中说'memberType'将会是'Dictionary'。这是可以分配给'IDictionary',但据我所知,不可能做'IDictionary ',所以我卡住了与非泛型的'IDictionary'。 –
carlpett
2012-01-19 08:22:14