Madness V2.0.0
Changelog
Changes since V1.5.0:
- BREAKING: Implement
DisposeAsync()only for selected types (@JustArchi). - Added additional
Pathproxies (@Abrynos #12). - Added static
Random.Sharedimplementation (@JustArchi). - Added static
EnvironmentwithProcessPath(@JustArchi). - Added static
SHA256andHMACSHA1withComputeHashfunctions (@JustArchi). - Usual amount of other core improvements, optimizations and bugfixes (@JustArchi).
Rationale for breaking change: compiler in .NET 6.0 became smarter (or more stupid, depending how you see it), and now reports CA1849 error upon seeing a Dispose() clause for every type that implements DisposeAsync(). Our previous code (before this change) did the most optimistic approach of adding (fake) DisposeAsync() to every type that implemented IDisposable interface. This now results in a warning when you call a Dispose() for every single disposable type, including those that do not implement IAsyncDisposable in net6.0 and other non-framework targets.
Therefore, the correct thing to do is actually limiting this addition only to types that we know that implement IAsyncDisposable in non-netframework targets.
If by any chance your app stopped working after this change, simply send us a PR or write an issue about the type you're having problem with and we'll add implementation for it after verification that it implements IAsyncDisposable in net5.0+. The types that we've included by default include Stream, TextWriter and Timer - those that we use in ArchiSteamFarm project.
Support
Madness is available for free, this release was made possible thanks to the people that decided to support the project. If you're grateful for what we're doing, please consider donating. Even $1 is highly appreciated and shows that you care. Thank you!