这个主题很模糊,因为我不确定我正在尝试做什么的正确术语。
我已经下载了dll
(我没有源代码),并且使用了反射工具,我在dll
实现中发现了一个错误。这个bug很容易修复。所以,让我们说错误在这里:
class A
{
void f() { // BUG!!! }
}
有没有办法实现我自己的A
来修复bug并在运行时将其注入以替换其他A
个实例?
答案 0 :(得分:72)
如果您使用的是.NET 4.0。或更高,请查看: MethodRental.SwapMethodBody Method
答案 1 :(得分:7)
最简单的方法是从该类继承并编写自己的实现。
class ParentClass
{
public void SomeMethod() {
//bug here
}
}
class Child:ParentClass
{
new public void SomeMethod() {
// I fixed it
}
}
此后,请使用您的课程。
Child child = new Child();
child.SomeMethod();