WCF has, admittedly, given me more problems that any other .NET technology I've encountered. This is probably my fault, since a colleague of mine, Scott Seely, was on the WCF team during his blue badge days, and could answer all my questions immediately. In other words, I never had to figure anything out on my own, so I never really learned it.
For example, take the issue I want to discuss in this post: empty reference.cs (or reference.vb) classes in your service references. This would happen to me all the time, and I would whine and bitch about WCF sucking, and Scott or Rupp or Josh would just fix it for me, probably half out of pity and half out of annoyance.
Anyways, in my current project, I'm making heavy usage of WCF, and am finally coming around on the technology. Now that I actually get what a binding is, and how it pertains to an endpoint, I can finally embrace WCF as truly the next generation of service applications. You know you're on board with WCF when ASMX suddenly seems like kind of a weenie technology in comparison.
However, that's not to say that WCF isn't a dick sometimes, and refuses to play nicely. Every once in a while, I'll add or update a service reference to/in a project, and the generated proxy class is blank. (...Save for the five commented-out lines at the top of the file stating that it was generated by a tool - isn't that the truth!)
So all I want to do here is provide a checklist of likely causes of this situation. In general, the problem is caused not by the WCF serializer failing, per-say, but rather getting confused. If there is actually a problem, you'll get an error in Visual Studio. However, quietly generating blank proxy classes is a different issue. Here are some things to check when you're getting empty proxy classes, sorted by sanity: