MonkeyPatch 1.0.2
See the version list below for details.
dotnet add package MonkeyPatch --version 1.0.2
NuGet\Install-Package MonkeyPatch -Version 1.0.2
<PackageReference Include="MonkeyPatch" Version="1.0.2" />
paket add MonkeyPatch --version 1.0.2
#r "nuget: MonkeyPatch, 1.0.2"
// Install MonkeyPatch as a Cake Addin #addin nuget:?package=MonkeyPatch&version=1.0.2 // Install MonkeyPatch as a Cake Tool #tool nuget:?package=MonkeyPatch&version=1.0.2
MonkeyPatch
MonkeyPatch leverages the power of MonoMod and Castle.Core to override Concrete, Abstract and Interface types (including private and static methods).
The Api
For concrete instance or static types, your code would look something like this:
While for interfaces, abstract and virtual types:
The two apis look very similar, but under the hood they are very different. The goal is to have a very simple api (just a handful of options) that writes the new method body for the desired target.
Known Issues
private static async methods are not found in release mode. This is currently being investigated.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Castle.Core (>= 4.4.1)
- Monkey.Utilities (>= 1.0.0)
- MonoMod.RuntimeDetour (>= 22.1.29.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.