Data Deserialization Order

Why are the members of a data contract expected in a particular order in order to be read?

The order of members is frequently used to build an expectation of what element might be appearing next. Knowing the possible order of data instead of potentially having to accept data in any order tends to make deserialization both faster and cheaper. In particular, you can frequently use an expectation of order to reduce or eliminate the buffering of data as compared to having to reorder the data after the fact. This is one of the many reasons for being able to specify the order property of a data member to be able to control the expected order.