You should use a byte buffer instead... Strings are by definition finished after chr(0). Therefore it's just right that .NET ends each string after the first chr(0) is found and ignores all the memory afterwards.
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
You should use a byte buffer instead... Strings are by definition finished after chr(0). Therefore it's just right that .NET ends each string after the first chr(0) is found and ignores all the memory afterwards.