I've been reading this week Keith Ballinger's new book, ".NET Web Services: Architecture and Implementation" (courtesy of a friend). So far, I'm only up to chapter 12, but I've learned quite a few things I wasn't aware of. I specially like how Keith puts everything together and explains things in a concise, yet easy to grasp manner.

However, I have seen a few typos and errors I can't help but mention (I guess the tech reviewer in me resists to read a book without dissecting it:)). These are fairly minor, and don't detract in any way from the overall quality of the book. So, Keith, in case you're interested, here are some of them:

In page 41, at the bottom of the page there's a small example of a WebMethod that uses XmlElementAttribute to change the XML element name for the message response (consisting of a string argument marked as out). However, as far as I can see, this doesn't work, since the XMlElementAttribute is applied to the method's return value, which is of type void, not to the entire response, which I believe is what Keith wanted. Or at least, it doesn't seem to work for me.

In pages 103 and 104, an example of using XmlArrayItemAttribute is shown to modify what the repeating element name inside an XML-serialized array (from the default, which is just the type name). The example uses this attribute to modify the serialization of a string[] so that each item is in an element called "name" instead of just "string", and page 104 is supposed to show what the resulting XML should be. However, this example still has all items serialized as "whatever".

I think I saw a few more, but I can't remember right now exactly what they were...

Tomas Restrepo

Software developer located in Colombia. Sr. PFE at Microsoft.