will reference the object being created).
* StackBuilderSink.cs: Take into account the forceInternalExecute
parameter.
svn path=/trunk/mcs/; revision=34255
+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
using System.Runtime.Remoting.Activation;
using System.Runtime.Serialization;
using System.Runtime.Remoting.Contexts;
+using System.Runtime.Remoting.Proxies;
namespace System.Runtime.Remoting.Messaging
{
Type _activationType;
string _activationTypeName;
bool _isContextOk;
+ [NonSerialized] RemotingProxy _sourceProxy;
public ConstructionCall(IMessage msg): base (msg)
{
{
get { return base.Properties; }
}
+
+ internal RemotingProxy SourceProxy
+ {
+ get { return _sourceProxy; }
+ set {_sourceProxy = value; }
+ }
}
}
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);
}
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);
}