【发布时间】:2010-01-18 11:36:27
【问题描述】:
假设我有一个从 C# 中的 B 类继承的 A 类。 B 类有一个名为 Checksum 的属性,当在运行时调用时,它会计算 A 类实例上所有属性的校验和(使用的特定校验和算法并不重要,可能来自 BCL)。
重要的是,校验和算法必须忽略校验和属性,否则稍后验证时它会失败(因为校验和值会改变)。
所以,据我所知,有两种选择:
1) 使用反射遍历对象的所有公共属性,连接成一个字符串并对其进行校验和。
2) 假设对象只是一堆连续的内存地址,并将其视为字节数组并对其进行校验和。
1 - 听起来很慢 2 - 听起来很困难,因为我不确定你如何让它忽略代表校验和本身的字符串,或者如何处理对其他对象的引用。
有没有人有任何比 1 更好的想法,这听起来像是这两种解决方案中的更好?
【问题讨论】: