如何在一个DLL中replace一个类?
这个问题很含糊,因为我不确定我想做什么是正确的术语。
我已经下载了一个dll
(我没有源代码),并使用reflection工具,我发现在dll
实现中的错误。 该错误很容易修复。 所以让我们说这个错误在这里:
class A { void f() { // BUG!!! } }
有什么办法来实现我自己的A
将修复错误,并在运行时注入它来取代其他A
实例?
如果您使用.NET 4.0。 或更高,请看一下: MethodRental.SwapMethodBody方法
其他方式: CLR注入:运行时方法替代品
最简单的方法就是从这个类inheritance并编写你自己的实现。
class ParentClass { public void SomeMethod() { //bug here } } class Child:ParentClass { new public void SomeMethod() { // I fixed it } }
在这之后,用你的课。
Child child = new Child(); child.SomeMethod();