#CsWinRT was a mistake.
In combination with a too aggressive #DotNet GC this makes for a really bad dev experience.

You call some method on some WinRT object, and GC decides to free the argument passed into the WinRT method because it isn't used anymore, and the WinRT method - not finished yet - fails with Access Violation.

Good design. 10/10

#CsWinRT in #DotNet 8 produces heap corruption 🙃
The fun part: It is timing sensitive.

#CSharp

Tired Take:
#WinMD, #WinRT, #CsWinRT and #CppWinRT are a mistake.

#DotNet #CSharp