#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