c# - 使用 Reflection.Emit 从派生类调用 BaseClass 中的私有(private)方法

标签 c# reflection.emit typebuilder

我正在寻找一种使用 TypeBuilder 从派生类中的基类调用私有(private)方法的方法。我知道这可以通过简单地通过反射调用该方法来完成,但尝试调用使用类型构建器生成的直通方法会导致 MethodAccessException。有没有人找到解决这个问题的方法?

最佳答案

不存在“问题”。你不能调用私有(private)方法——这就是为什么它们是私有(private)的。事实上,当您获得适当的信任时,您可以通过反射(reflection)来做到这一点,这实际上是一个后门,并不表明您应该能够以其他方式做到这一点。

如果可能的话,您应该重新设计以避免调用私有(private)方法。如果您绝对必须调用它,请使用反射 - 事实上,它很丑陋,表明您处于一种丑陋的情况。

关于c# - 使用 Reflection.Emit 从派生类调用 BaseClass 中的私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18342589/

相关文章:

c# - 在 LINQ 查询中创建嵌套在对象中的列表

c# - Reflection.Emit 不安全代码

c# - 在运行时创建 C# Web API 2 Controller 时出现异常

c# - 使用 TypeBuilder 为基类创建传递构造函数

c# - 嵌套用户控件的 WPF、MVVM 和事件处理

c# - 当用作委托(delegate)参数时,未实现的部分方法是否会被替换为 null?

c# - 我应该为 VS 2010 创建什么样的插件/扩展?

c# - 替换方法的 MethodBody 中的指令

c# - 如何覆盖未在签名中覆盖的基类方法