我可以覆盖内部虚拟方法

时间:2013-09-20 03:23:05

标签: .net cil

当然,在一个不同的组件中,这通常是不可能的。但是,Microsoft在其文档“internal”中声明:

  

可以在某些语言中覆盖内部虚拟方法,例如   使用Ilasm.exe作为文本Microsoft中间语言(MSIL),   即使使用C#也无法覆盖它。

当我拼命寻找一种方法来做到这一点时,我想知道如何才能真正做到这一点。我能够通过使用ildasm / ilasm创建一个完全相同的程序集,但运行时拒绝使用TypeLoadException加载它,它告诉我它不会加载覆盖内部方法的类。如果不是微软本身的声明,我现在就放弃这种方法。 是否有任何可以克服的安全方面,这将使CLR更“放松”? PL。注意:我想覆盖的方法是.NET提供的库的一部分(System.Web.UI.Control.LoadRecursive)。

为什么我需要这个: 我知道这个方法不是意味着被覆盖,而且应该争取不同的设计。但是,我非常有信心,我的用例没有替代解决方案。我想用catch子句隔离控件树的一部分,以防止错误的控件破坏整个页面。不幸的是,MS没有提供任何关于官方API的方法(见here!),因此,我现在正在寻找这样的黑客攻击。

感谢任何小提示。

0 个答案:

没有答案