* ConstructionCall.cs: Added a Proxy property (which is the proxy that
authorLluis Sanchez <lluis@novell.com>
Wed, 22 Sep 2004 19:33:18 +0000 (19:33 -0000)
committerLluis Sanchez <lluis@novell.com>
Wed, 22 Sep 2004 19:33:18 +0000 (19:33 -0000)
  will reference the object being created).
* StackBuilderSink.cs: Take into account the forceInternalExecute
  parameter.

svn path=/trunk/mcs/; revision=34255

mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog
mcs/class/corlib/System.Runtime.Remoting.Messaging/ConstructionCall.cs
mcs/class/corlib/System.Runtime.Remoting.Messaging/StackBuilderSink.cs

index ce9315114ca69b137da7b28ba5657b1949847467..6220c13027b3769dda05b85a1989da0eee0842fd 100644 (file)
@@ -1,3 +1,10 @@
+2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
+
+       * ConstructionCall.cs: Added a Proxy property (which is the proxy that
+         will reference the object being created).
+       * StackBuilderSink.cs: Take into account the forceInternalExecute
+         parameter.
+
 2004-09-11 Ben Maurer  <bmaurer@users.sourceforge.net>
 
        * CallContext.cs: Use [ThreadStatic], it is much faster than the
index e920ad930213baf547bfd4bf12d036287de2fc11..412f1d0043ffa1f123cfd809f9f2e183de533b4f 100644 (file)
@@ -35,6 +35,7 @@ using System.Collections;
 using System.Runtime.Remoting.Activation;
 using System.Runtime.Serialization;
 using System.Runtime.Remoting.Contexts;
+using System.Runtime.Remoting.Proxies;
 
 namespace System.Runtime.Remoting.Messaging
 {
@@ -47,6 +48,7 @@ namespace System.Runtime.Remoting.Messaging
                Type _activationType;
                string _activationTypeName;
                bool _isContextOk;
+               [NonSerialized] RemotingProxy _sourceProxy;
 
                public ConstructionCall(IMessage msg): base (msg)
                {
@@ -152,5 +154,11 @@ namespace System.Runtime.Remoting.Messaging
                {
                        get { return base.Properties; }
                }
+               
+               internal RemotingProxy SourceProxy
+               {
+                       get { return _sourceProxy; }
+                       set {_sourceProxy = value; }
+               }
        }
 }
index b89985fdf8adb3513cebfd7d8bea85d9d7f8a0c0..6b2e80db5e0fa4ebcf218bc034df26291e6ceed7 100644 (file)
@@ -43,10 +43,10 @@ namespace System.Runtime.Remoting.Messaging
                MarshalByRefObject _target;
                RealProxy _rp;
 
-               public StackBuilderSink (MarshalByRefObject obj)
+               public StackBuilderSink (MarshalByRefObject obj, bool forceInternalExecute)
                {
                        _target = obj;
-                       if (RemotingServices.IsTransparentProxy (obj))
+                       if (!forceInternalExecute && RemotingServices.IsTransparentProxy (obj))
                                _rp = RemotingServices.GetRealProxy (obj);
                }
 
@@ -76,8 +76,7 @@ namespace System.Runtime.Remoting.Messaging
                        
                        IMessage res;
                        if (_rp != null) res = _rp.Invoke (msg);
-                       else res = RemotingServices.InternalExecuteMessage (_target, (IMethodCallMessage)msg);
-                       res = RemotingServices.InternalExecuteMessage (_target, msg);
+                       else res = RemotingServices.InternalExecuteMessage (_target, msg);
                        
                        replySink.SyncProcessMessage (res);
                }