Example #1
0
        internal void AttachIdentity(Identity identity)
        {
            _objectIdentity = identity;

            if (identity is ClientActivatedIdentity)    // It is a CBO
            {
                ClientActivatedIdentity cai = (ClientActivatedIdentity)identity;
                _targetContext = cai.Context;
                AttachServer(cai.GetServerObject());
                cai.SetClientProxy((MarshalByRefObject)GetTransparentProxy());
            }

            if (identity is ClientIdentity)
            {
                ((ClientIdentity)identity).ClientProxy = (MarshalByRefObject)GetTransparentProxy();
                _targetUri = ((ClientIdentity)identity).TargetUri;
            }
            else
            {
                _targetUri = identity.ObjectUri;
            }

            if (_objectIdentity.EnvoySink != null)
            {
                _sink         = _objectIdentity.EnvoySink;
                _hasEnvoySink = true;
            }
            else
            {
                _sink = _objectIdentity.ChannelSink;
            }

            _ctorCall = null;   // Object already constructed
        }
 internal void AttachIdentity(Identity identity)
 {
     this._objectIdentity = identity;
     if (identity is ClientActivatedIdentity)
     {
         ClientActivatedIdentity clientActivatedIdentity = (ClientActivatedIdentity)identity;
         this._targetContext = clientActivatedIdentity.Context;
         base.AttachServer(clientActivatedIdentity.GetServerObject());
         clientActivatedIdentity.SetClientProxy((MarshalByRefObject)this.GetTransparentProxy());
     }
     if (identity is ClientIdentity)
     {
         ((ClientIdentity)identity).ClientProxy = (MarshalByRefObject)this.GetTransparentProxy();
         this._targetUri = ((ClientIdentity)identity).TargetUri;
     }
     else
     {
         this._targetUri = identity.ObjectUri;
     }
     if (this._objectIdentity.EnvoySink != null)
     {
         this._sink         = this._objectIdentity.EnvoySink;
         this._hasEnvoySink = true;
     }
     else
     {
         this._sink = this._objectIdentity.ChannelSink;
     }
     this._ctorCall = null;
 }
Example #3
0
 // Called by the runtime
 internal object GetAppDomainTarget()
 {
     if (_server == null)
     {
         ClientActivatedIdentity identity = RemotingServices.GetIdentityForUri(_targetUri) as ClientActivatedIdentity;
         if (identity == null)
         {
             throw new RemotingException("Server for uri '" + _targetUri + "' not found");
         }
         _server = identity.GetServerObject();
     }
     return(_server);
 }