У меня есть самообслуживаемая служба WCF с InstanceContextMode, установленным для PerSession.
Как я могу обнаружить новые клиентские подключения (сеансы) к моей службе из главного приложения и использовать этот новый контекст сеанса для наблюдения за моей службой через свои события?WCF: Как определить новые подключения к службам WCF PerSession?
Что-то вроде:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class MyService : IMyService {
public event EventHandler ClientRegistered;
public event EventHandler FileUploaded;
}
и из моего приложения хоста, чтобы быть в состоянии сделать:
ServiceHost svc = new ServiceHost(typeof(MyService));
svc.Open();
// something like:
svc.NewSession += new EventHandler(...)
//...
public void SessionHandler(InstanceContext SessionContext) {
MySessionHandler NewSessionHandler = new MySessionHandler(SessionContext);
// From MySessionHandler I handle the service's events (FileUploaded, ClientRegistered)
// for this session and notify the UI of any changes.
NewSessionHandler.Handle();
}
Ваша информация была очень полезной, я нашел то, что хотел (ObservableServiceHost)! Спасибо. –