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