【问题标题】:Do access modifiers affect reflection also?访问修饰符也会影响反射吗?
【发布时间】:2010-09-10 21:24:35
【问题描述】:

我一直相信他们做到了,但是看到这里的一些答案让我怀疑......

我可以通过反射从类外部访问私有字段/属性/方法吗?

【问题讨论】:

    标签: .net reflection access-modifiers


    【解决方案1】:

    是的,您可以通过反射访问私有字段。这就是许多 ORM 在不通过您的属性的情况下填充对象的方式(这将调用您可能不打算在对象加载时运行的业务逻辑)。

    访问修饰符不是一种安全形式!

    【讨论】:

    • 不过,应用程序可能需要完全信任(或至少是 ReflectionPermission)。
    【解决方案2】:

    但是,您需要额外的权限才能通过反射从类外部访问私有/受保护/内部字段/属性/方法。

    【讨论】:

    • 是的,应用程序需要完全信任(或至少 ReflectionPermission)。
    【解决方案3】:

    是的,您可以,您只需在访问它们时在 Bi​​ndingFlags 中指定访问修饰符。

    【讨论】:

      【解决方案4】:

      是的,你可以:但你真的应该问自己为什么要这样做:)

      实际上只有一种情况是有意义的,这就是 UnitTest。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-14
        • 2020-03-10
        • 2014-07-23
        • 2023-04-03
        • 2014-11-03
        • 2017-08-18
        相关资源
        最近更新 更多