在WCF中保存回调的最佳方法是什么?

时间:2015-11-30 04:59:09

标签: c# wcf callback

当我登录时,我使用回调并保存客户端,如下所示:

public List<UserEN> Login(UserEN _user, ref string message)
            {
                List<UserEN> authorizationList = new List<UserEN>();
                if (!string.IsNullOrEmpty(_user._userName))
                {
                    try
                    { 
                       // string message = string.Empty;
                        lock (locker)
                        {
                            callback = OperationContext.Current.GetCallbackChannel<ISaadiqinCallback>();

                            //remove the old client
                            if (clients.Keys.Contains(_user._userName))
                                clients.Remove(_user._userName);
                            //Adding the clients with userName and callback channel
                            clients.Add(_user._userName, callback);
                            //Get the authorization list from database
                           authorizationList =  new LoginBal().Login(_user, ref message);

                            //send the list to the client
                            //callback.BroadcastToClient(authorizationList);    
                        }
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
                return authorizationList;
            }

登录后,流程结束。 现在当我尝试在我的系统中进行一些事务时,我正在检查这个方法:

private bool Override()
        {
            bool isOverrideSuccess = false;
            foreach (var client in clients)
            {
                ISaadiqinCallback cb;// = OperationContext.Current.GetCallbackChannel<ISaadiqinCallback>();
                clients.TryGetValue(client.Key, out cb);
                //call DB
                if (cb.Equals(client.Value) && "Asif" == client.Key)
                {
                   callback.NotifyUser("Override required.");
                }
            }
            return isOverrideSuccess;
        }

显然,回调为空。因为当我执行事务时,它不会转到Login方法并且不会初始化回调。 那么,在login方法中保存回调的最佳方法是什么,以便我可以在Override方法中使用它。

由于

0 个答案:

没有答案