Tested with Mono only (but it most likely works on Microsoft .NET too)