var l = new List<MessagePartDescription> (md.Body.Parts);
if (md.Body.ReturnValue != null)
l.Add (md.Body.ReturnValue);
- foreach (MessagePartDescription partDesc in l)
+ foreach (MessagePartDescription partDesc in l) {
+ if (partDesc.MemberInfo == null)
+ continue;
if (partDesc.MemberInfo is FieldInfo)
parts [partDesc.Index] = ((FieldInfo) partDesc.MemberInfo).GetValue (msgObject);
else
parts [partDesc.Index] = ((PropertyInfo) partDesc.MemberInfo).GetValue (msgObject, null);
+ }
}
internal static bool HasReturnValue (MessageBodyDescription desc)
for (r.MoveToContent (); r.NodeType == XmlNodeType.Element; r.MoveToContent ()) {
XmlQualifiedName key = new XmlQualifiedName (r.LocalName, r.NamespaceURI);
MessagePartDescription rv = md.Body.ReturnValue;
- if (rv != null && rv.Name == key.Name && rv.Namespace == key.Namespace)
+ if (rv != null && rv.Name == key.Name && rv.Namespace == key.Namespace && rv.Type != typeof (void))
parts [0] = ReadMessagePart (md.Body.ReturnValue, r);
else if (md.Body.Parts.Contains (key)) {
MessagePartDescription p = md.Body.Parts [key];