System.Runtime.Remoting.ServerIdentity.AddServerSideDynamicProperty C# (CSharp) Method

AddServerSideDynamicProperty() private method

private AddServerSideDynamicProperty ( IDynamicProperty prop ) : bool
prop IDynamicProperty
return bool
        internal bool AddServerSideDynamicProperty(
            IDynamicProperty prop)
        {
            if (_dphSrv == null)
            {
                DynamicPropertyHolder dphSrv = new DynamicPropertyHolder();
                bool fLocked = false;
                RuntimeHelpers.PrepareConstrainedRegions();
                try
                {
                    Monitor.ReliableEnter(this, ref fLocked);
                    if (_dphSrv == null)
                    {
                        _dphSrv = dphSrv;
                    }
                }
                finally
                {
                    if (fLocked)
                    {
                        Monitor.Exit(this);
                    }
                }
            }
            return _dphSrv.AddDynamicProperty(prop);
        }
        

Usage Example

Esempio n. 1
0
        } // RemoveIdentity

        // Support for dynamically registered property sinks
        internal static bool AddDynamicProperty(MarshalByRefObject obj, IDynamicProperty prop)
        {
            if (RemotingServices.IsObjectOutOfContext(obj))
            {
                // We have to add a proxy side property, get the identity
                RealProxy rp = RemotingServices.GetRealProxy(obj);
                return(rp.IdentityObject.AddProxySideDynamicProperty(prop));
            }
            else
            {
                MarshalByRefObject realObj =
                    (MarshalByRefObject)
                    RemotingServices.AlwaysUnwrap((ContextBoundObject)obj);
                // This is a real object. See if we have an identity for it
                ServerIdentity srvID = (ServerIdentity)MarshalByRefObject.GetIdentity(realObj);
                if (srvID != null)
                {
                    return(srvID.AddServerSideDynamicProperty(prop));
                }
                else
                {
                    // identity not found, we can't set a sink for this object.
                    throw new RemotingException(
                              Environment.GetResourceString("Remoting_NoIdentityEntry"));
                }
            }
        }
All Usage Examples Of System.Runtime.Remoting.ServerIdentity::AddServerSideDynamicProperty