代码之家  ›  专栏  ›  技术社区  ›  Roman Pokrovskij Archil Labadze

为什么反射有效(ECMA-335调用私有方法)?

  •  3
  • Roman Pokrovskij Archil Labadze  · 技术社区  · 15 年前

    1) 通过反射,可以调用私有方法。 2) TypeBuilder无法从另一个程序集生成新类型“继承”窗体内部类型。

    ECMA规范使用反射使运行时访问元数据合法化,其中提到了一个应用程序—序列化,即访问状态和字段。。还有一句话“metadata描述如何解析调用”,但我在文本中找不到可以忽略方法的可访问性来解析调用的情况。可能我错过了什么。有人能给我解释一下ECMA作者是如何为私有方法调用敞开大门的吗(至少对于反射来说,顺便说一句,“如果特别指定了成员的可访问性,则可以忽略它”——但我在文本中同样找不到这些情况)?

    1 回复  |  直到 15 年前
        1
  •  2
  •   dthorpe    15 年前

    这里只是一个猜测,但是对于诸如验证托管代码的类型安全性和可信赖性之类的静态分析需要查看类类型的所有部分—公共接口以及私有字段。如果类包含不安全类型的私有字段,则类本身的类型安全性有问题。