Ref parameter was not covered by ParameterInfo.IsOut. Fixed bug #696784.
authorAtsushi Eno <atsushi@ximian.com>
Tue, 31 May 2011 09:51:36 +0000 (18:51 +0900)
committerAtsushi Eno <atsushi@ximian.com>
Tue, 31 May 2011 09:51:36 +0000 (18:51 +0900)
mcs/class/System.ServiceModel/System.ServiceModel/ClientRealProxy.cs

index 95813fdb4c4d509f8ee3a55ad2bb4a2b580f31e2..34bc11e3bd592ef081c77f894bb7733611d5bb19 100644 (file)
@@ -126,7 +126,7 @@ namespace System.ServiceModel
                                        method = od.BeginMethod;
                                }
                                
-                               if (method != null && method.GetParameters ().Any (pi => pi.IsOut))
+                               if (method != null && method.GetParameters ().Any (pi => pi.IsOut || pi.ParameterType.IsByRef))
                                        return new ReturnMessage (ret, pl, pl.Length, null, inmsg);
                                else
                                        return new ReturnMessage (ret, outArgs != null ? outArgs.ToArray () : null, outArgs != null ? outArgs.Count : 0, null, inmsg);