У меня небольшая проблема с моей службой WCF.
На самом деле, пользователь может подписаться на услугу «публикации».
Я просто делаю OperationContext.Current.GetCallbackChannel<IPublishing>();
Затем я добавляю возвращенный объект в список (вид List<IPublishing>
)
Поскольку я хочу, чтобы мои клиенты получали уведомление, когда я публикую сообщение, я просто вызываю обратный вызов всех подписавшихся пользователей.
Это прекрасно работает, но пользователь может подписаться дважды, а я не хочу.
Вот почему я делаю if (!theList.Contains(theCallbackChannelReturned))
, чтобы проверить это ограничение ...
Дело в том, что каждый раз, когда я создаю канал обратного вызова, кажется, что он создает новый экземпляр IPublishing, даже на том же клиенте ...
Я не знаю, как это сделать ... Я понял, что OperationContext.Current.InstanceContext
возвращает тот же хэш-код, но
GetCallbackChannel не ...
Спасибо!