这个主题很模糊,因为我不确定我正在尝试做什么的正确术语.
我已经下载了一个dll
(我没有源代码),并使用反射工具,我在dll
实现中发现了一个错误.这个bug很容易修复.所以我们假设错误在这里:
class A
{
void f() { // BUG!!! }
}
Run Code Online (Sandbox Code Playgroud)
有没有办法实现我自己的 A
修复bug并在运行时注入它来替换其他A
实例?
HAB*_*JAN 73
如果您使用的是.NET 4.0.或更高,看看:MethodRental.SwapMethodBody方法
其他方式:CLR注入:运行时方法替换
最简单的方法是从该类继承并编写自己的实现.
class ParentClass
{
public void SomeMethod() {
//bug here
}
}
class Child:ParentClass
{
new public void SomeMethod() {
// I fixed it
}
}
Run Code Online (Sandbox Code Playgroud)
在这之后,使用你的课程.
Child child = new Child();
child.SomeMethod();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5089 次 |
最近记录: |