我正在使用 Juval Lowy 的“Programming WCF Services”中的 ServiceModelEx WCF 库。我正在尝试使用发布者和订阅者实现发布订阅服务。到目前为止,我所做的是发布者和发现发布服务。
服务合同:
[ServiceContract]
interface IMyEvents
{
[OperationContract(IsOneWay=true)]
void OnEvent1(int number);
}
发现 - 发布服务:
class MyPublishService : DiscoveryPublishService<IMyEvents>, IMyEvents
{
public void OnEvent1(int number)
{
FireEvent(number);
}
}
发现 - 发布服务主机:
ServiceHost host = DiscoveryPublishService<IMyEvents>.
CreateHost<MyPublishService>();
host.Open();
// later..
host.Close();
出版商:
IMyEvents proxy = DiscoveryPublishService<IMyEvents>.CreateChannel();
proxy.OnEvent1();
(proxy as ICommunicationObject).Close();
我的问题是如何实现订阅者?书上说要执行服务契约。这很简单。
class EventServiceSubscriber : IMyEvents
{
public void OnEvent1(int number)
{
// do something
}
}
但我如何托管订户?订阅者如何连接到发布-订阅服务?