gpt4 book ai didi

c# - 在 .net 中隐藏私有(private)字段以防止反射

转载 作者:太空狗 更新时间:2023-10-30 00:01:26 24 4
gpt4 key购买 nike

我有一个类在整个磁盘卷上执行一些敏感的 I/O 操作。我所说的敏感是指如果操作出错,它可能会损坏目标卷。

在一些发布后测试中,我发现使用反射操作私有(private)字段可能会破坏进程。该类在设计上未密封,因此库的使用者可以创建派生类。

有没有办法保护私有(private)成员以防止通过反射(从派生代码或消费者代码)进行修改?

更新:我发现了来自 Hans Passant 的评论到old question提及 [ReflectionPermission]。现在正在研究。

最佳答案

没有办法对 Reflection 隐藏你的领域。它可用于访问和操作类型上的任何字段。您可以采取一些步骤,例如混淆,这会使识别字段变得更加困难,进而更难以通过反射进行更改。不过,这只是一个减速带。坚定的开发人员可以使用反射来击败您的任何变通办法

关于c# - 在 .net 中隐藏私有(private)字段以防止反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22305741/

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