Madness V2.0.0-alpha4
Pre-releaseChangelog
Changes since V1.5.0:
- BREAKING: Implement
DisposeAsync()
only for selected types (@JustArchi). - Added additional
Path
proxies (@Abrynos #12). - Added static
Random.Shared
implementation (@JustArchi). - Added static classes of
SHA256
andHMACSHA1
with new staticComputeHash
functions (@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!