So I'd love to fix that problem. The second problem is with custom classes I can't serialize public get/private setter fields (which is also really annoying). I tried the method of declaring private fields globally and that worked for 5 builds then all of the sudden the web service said hey! your code that's worked for 5 builds isn't working anymore! You MUST make all of your fields insecure and writable! Is .NET seriously unable to account for public get fields with private setters? That'd be just a terrible design. Please help
EDIT: I figured out the first problem. I have to pass the value as null instead of an empty dictionary. The first problem is still an issue though.