当我登录时,我使用回调并保存客户端,如下所示:
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方法中使用它。
由于