加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 修改内部.NET类的方法实现

发布时间:2020-12-15 23:52:54 所属栏目:百科 来源:网络整理
导读:我想修改我的C#/ .NET应用程序在内部工作的方式.我已经使用Reflector挖掘了.NET框架,并找到了一个非常好的地方,我可以使用不同的方法实现.这是System. Windows.Forms命名空间中的内部类.您显然无法使用常规方法更改此类的代码,因此我认为可以在运行时通过反
我想修改我的C#/ .NET应用程序在内部工作的方式.我已经使用Reflector挖掘了.NET框架,并找到了一个非常好的地方,我可以使用不同的方法实现.这是System. Windows.Forms命名空间中的内部类.您显然无法使用常规方法更改此类的代码,因此我认为可以在运行时通过反射替换其中的方法.我想完全替换我的应用程序的方法是这样的:

public static WindowsFontQuality WindowsFontQualityFromTextRenderingHint(Graphics g)

在课堂里:

内部密封类System.Windows.Forms.Internal.WindowsFont

有没有办法加载该类型并在运行时替换该方法,而不影响当前正在运行或之后启动的任何其他应用程序?我曾尝试使用Type.GetType()和类似的东西加载类型,但到目前为止失败了.

解决方法

您可以使用调试器API执行此操作 – 但这是一个非常非常糟糕的主意.

首先,安装调试器挂钩运行可能会更慢 – 但更重要的是,篡改框架代码很容易导致意外行为.在所有可能的场景中,您是否确切知道如何使用此方法,甚至在您自己的应用程序中?

它也很可能会产生不良的法律后果,尽管你应该向律师咨询.

我个人会放弃这种思路,并尝试以不同的方式来完成你想要做的任何事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读