gpt4 book ai didi

c# - 内存中的校验和对象

转载 作者:行者123 更新时间:2023-11-30 19:50:36 25 4
gpt4 key购买 nike

假设我在 C# 中有一个继承自类 B 的类 A。 B 类有一个名为 Checksum 的属性,当在运行时调用时,它会计算 A 类实例上所有属性的校验和(使用的特定校验和算法并不重要,可能来自 BCL)。

重要的是,校验和算法必须忽略校验和属性,否则稍后验证时会失败(因为校验和值会发生变化)。

因此,据我所知,有两种选择:

1) 使用反射遍历对象的所有公共(public)属性,连接成一个字符串并校验和。

2) 假设该对象只是一堆连续的内存地址,并将其视为字节数组和校验和。

1 - 听起来很慢2 - 听起来很难,因为我不确定您如何让它忽略表示校验和本身的字符串,或者如何处理对其他对象的引用。

有没有人有比这两个解决方案中听起来更好的 1 更好的想法?

最佳答案

您可以将 checksum 属性修饰为 NonSerialized 并将类的实例序列化为字节数组,然后计算校验和。这样在序列化时该属性将被忽略。

关于c# - 内存中的校验和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2085671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com