4

调查 .NET 反射 API 我了解可以使用反射更改私有字段/属性值,在这种情况下,安全性由反射权限控制。我的问题是如何控制代码是否可以访问私有字段?来自 MSDN:

要允许代码调用任何非公共成员:您的代码必须被授予具有 ReflectionPermissionFlag.MemberAccess 标志的 ReflectionPermission。

如何使我的类私有字段对使用反射的代码不可见?这样做的最佳实践是什么?

4

2 回答 2

3

ReflectionPermission是使用反射授予代码的权限,而不是被反射的代码。

作为开发人员,您无法阻止代码被反映。您可以使用混淆,但这只会使反射更加困难,并非不可能。

作为系统管理员,您可以通过ReflectionPermission对机器实施适当的安全策略来阻止需要运行的代码,但是,如果我正确理解了您的问题,那么这不是您想要的。

于 2013-10-04T07:11:00.077 回答
0

请参阅评论中的链接,但简短的回答是:最终您不能限制某人对您的代码使用反射。

评论中的链接很好地解释了它:如何限制某些程序集的反射?

于 2013-10-04T07:05:10.223 回答