调查 .NET 反射 API 我了解可以使用反射更改私有字段/属性值,在这种情况下,安全性由反射权限控制。我的问题是如何控制代码是否可以访问私有字段?来自 MSDN:
要允许代码调用任何非公共成员:您的代码必须被授予具有 ReflectionPermissionFlag.MemberAccess 标志的 ReflectionPermission。
如何使我的类私有字段对使用反射的代码不可见?这样做的最佳实践是什么?
调查 .NET 反射 API 我了解可以使用反射更改私有字段/属性值,在这种情况下,安全性由反射权限控制。我的问题是如何控制代码是否可以访问私有字段?来自 MSDN:
要允许代码调用任何非公共成员:您的代码必须被授予具有 ReflectionPermissionFlag.MemberAccess 标志的 ReflectionPermission。
如何使我的类私有字段对使用反射的代码不可见?这样做的最佳实践是什么?
ReflectionPermission
是使用反射授予代码的权限,而不是被反射的代码。
作为开发人员,您无法阻止代码被反映。您可以使用混淆,但这只会使反射更加困难,并非不可能。
作为系统管理员,您可以通过ReflectionPermission
对机器实施适当的安全策略来阻止需要运行的代码,但是,如果我正确理解了您的问题,那么这不是您想要的。
请参阅评论中的链接,但简短的回答是:最终您不能限制某人对您的代码使用反射。
评论中的链接很好地解释了它:如何限制某些程序集的反射?