コード例 #1
0
        private async Task RegisterInternal(API.IUserShim ushim, Type cbType, IContextCallback refmatch)
        {
            var session = ushim.SessionId;

            if (typeof(IServerContextCallback).IsAssignableFrom(cbType))
            {
                await RegisterInternalInternal(session, ServerCallbacks, CallbackContext.ContextServer, cbType, (IServerContextCallback)refmatch);
            }

            if (typeof(IChannelContextCallback).IsAssignableFrom(cbType))
            {
                await RegisterInternalInternal(session, ChannelCallbacks, CallbackContext.ContextChannel, cbType, (IChannelContextCallback)refmatch);
            }

            if (typeof(IUserContextCallback).IsAssignableFrom(cbType))
            {
                await RegisterInternalInternal(session, UserCallbacks, CallbackContext.ContextUser, cbType, (IUserContextCallback)refmatch);
            }
        }
コード例 #2
0
 public Task Register <TCallback>(API.IUserShim ushim) where TCallback : IContextCallback, new()
 {
     return(RegisterInternal(ushim, typeof(TCallback), null));
 }
コード例 #3
0
 public Task Register(API.IUserShim user, IContextCallback callback)
 {
     return(RegisterInternal(user, callback.GetType(), callback));
 }