我想要属性 getter 和方法,我可以使用我自己的自定义属性进行装饰,并根据该属性的存在用不同的实现替换方法主体。此外,不同的实现将需要知道提供给装饰方法的自定义属性的构造函数参数。
这显然可以使用 AOP 来完成,例如 PostSharp 或 LinFu,但我想知道是否有一种方法可以做到这一点而不涉及构建后处理步骤,因为添加它会使项目变得比我希望的更复杂。
最佳答案
有几个框架允许您在运行时动态更改任何方法:
- Harmony免费和开源 (MIT)!
- Prig :免费和开源 (MIT),需要 Visual Studio 扩展并在启动器下运行程序,自 2017 年以来未更新。
- Microsoft Fakes : 商业版,包含在 Visual Studio Enterprise 中(旧版本的 Premium 和 Ultimate),但不包含在 Community 和 Professional 中
- Telerik JustMock : 商业版,提供“精简版”
- Typemock Isolator : 商业
关于c# - 如何在运行时替换方法实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3062830/