Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/System.Runtime.Remoting')
-rw-r--r--mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/ChangeLog5
-rw-r--r--mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpServerChannel.cs3
-rw-r--r--mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/ChangeLog11
-rw-r--r--mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/SoapMessageFormatter.cs28
4 files changed, 36 insertions, 11 deletions
diff --git a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/ChangeLog b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/ChangeLog
index 42d69cb17d6..a638962017f 100644
--- a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/ChangeLog
+++ b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-15 Lluis Sanchez Gual <lluis@novell.com>
+
+ * TcpServerChannel.cs: Set channel name from the provided properties.
+ This fixes bug #61592.
+
2004-05-13 Lluis Sanchez Gual <lluis@ximian.com>
* TcpChannel.cs: Made Init private.
diff --git a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpServerChannel.cs b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpServerChannel.cs
index 945dff1e278..6e3aba6f960 100644
--- a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpServerChannel.cs
+++ b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpServerChannel.cs
@@ -106,6 +106,9 @@ namespace System.Runtime.Remoting.Channels.Tcp
{
switch((string)property.Key)
{
+ case "name":
+ name = property.Value.ToString();
+ break;
case "port":
port = Convert.ToInt32(property.Value);
break;
diff --git a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/ChangeLog b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/ChangeLog
index c2ea35962b2..47d41efa66e 100644
--- a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/ChangeLog
+++ b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/ChangeLog
@@ -1,3 +1,14 @@
+2004-07-26 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * SoapMessageFormater.cs: In BuildSoapMessageFromMethodResponse, add the
+ return value to the SoapMessage even if it is null. This fixes bug #61837.
+
+2004-07-06 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * SoapMessageFormatter.cs: In BuildMethodCallFromSoapMessage, set get the
+ parameters from the SoapMessage by position, not by name, since names
+ may be different. This fixes bug #60427.
+
2004-06-16 Lluis Sanchez Gual <lluis@ximian.com>
* SoapServerFormatterSink.cs: Removed unneded method.
diff --git a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/SoapMessageFormatter.cs b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/SoapMessageFormatter.cs
index e0508f1cb82..2de868c9bee 100644
--- a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/SoapMessageFormatter.cs
+++ b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/SoapMessageFormatter.cs
@@ -222,21 +222,21 @@ namespace System.Runtime.Remoting.Channels {
// have to add them here
_methodCallParameters = _methodCallInfo.GetParameters();
object[] args = new object[_methodCallParameters.Length];
-
- foreach(ParameterInfo paramInfo in _methodCallParameters)
+ int sn = 0;
+ for (int n=0; n<_methodCallParameters.Length; n++)
{
+ ParameterInfo paramInfo = _methodCallParameters [n];
Type paramType = (paramInfo.ParameterType.IsByRef ? paramInfo.ParameterType.GetElementType() : paramInfo.ParameterType);
if (paramInfo.IsOut && paramInfo.ParameterType.IsByRef) {
- args [paramInfo.Position] = GetNullValue (paramType);
+ args [n] = GetNullValue (paramType);
}
else{
- int index = Array.IndexOf(soapMessage.ParamNames, paramInfo.Name);
- if(soapMessage.ParamValues[index] is IConvertible)
- soapMessage.ParamValues[index] = Convert.ChangeType(
- soapMessage.ParamValues[index],
- paramType);
- args [paramInfo.Position] = soapMessage.ParamValues[index];
+ object val = soapMessage.ParamValues[sn++];
+ if(val is IConvertible)
+ args [n] = Convert.ChangeType (val, paramType);
+ else
+ args [n] = val;
}
}
@@ -267,10 +267,16 @@ namespace System.Runtime.Remoting.Channels {
ArrayList paramValues = new ArrayList();
ArrayList paramTypes = new ArrayList();
soapMessage.MethodName = mrm.MethodName+"Response";
- if(mrm.ReturnValue != null && mrm.ReturnValue.GetType() != typeof(void)) {
+
+ Type retType = ((MethodInfo)mrm.MethodBase).ReturnType;
+
+ if(retType != typeof(void)) {
paramNames.Add("return");
paramValues.Add(mrm.ReturnValue);
- paramTypes.Add(mrm.ReturnValue.GetType());
+ if (mrm.ReturnValue != null)
+ paramTypes.Add(mrm.ReturnValue.GetType());
+ else
+ paramTypes.Add(retType);
}
for(int i = 0; i < mrm.OutArgCount; i++){