void PartsToMessageObject (MessageDescription md, object [] parts, object msgObject)
{
foreach (MessagePartDescription partDesc in md.Body.Parts)
if (partDesc.MemberInfo is FieldInfo)
((FieldInfo) partDesc.MemberInfo).SetValue (msgObject, parts [partDesc.Index]);
else
((PropertyInfo) partDesc.MemberInfo).SetValue (msgObject, parts [partDesc.Index], null);
}