What are those + signs at the end of each stack trace line?
- If it's in the release mode, it's CIL offset for that function in the DLL.
- If it's in debug mode, it's the line number in the source.
In other languages (and therefore, probably this one too) it denotes the current position in the code, as a number of bytes or instructions offset from the function it is in. So in this case it got 173 bytes/instructions/whatever into Validate and then raised the exception.
I can't explain the 2049947 value however...