internal MethodCall (Object handlerObject, BinaryMethodCallMessage smuggledMsg)
{
if (handlerObject != null)
{
_uri = handlerObject as String;
if (_uri == null)
{
// This must be the tranparent proxy
MarshalByRefObject mbr = handlerObject as MarshalByRefObject;
if (mbr != null)
{
throw new NotImplementedException ("MarshalByRefObject.GetIdentity");
/*
bool fServer;
srvID = MarshalByRefObject.GetIdentity(mbr, out fServer) as ServerIdentity;
uri = srvID.URI;
*/
}
}
}
_typeName = smuggledMsg.TypeName;
_methodName = smuggledMsg.MethodName;
_methodSignature = (Type[])smuggledMsg.MethodSignature;
_args = smuggledMsg.Args;
_genericArguments = smuggledMsg.InstantiationArgs;
_callContext = smuggledMsg.LogicalCallContext;
ResolveMethod();
if (smuggledMsg.HasProperties)
smuggledMsg.PopulateMessageProperties(Properties);
}