我有一个托管WCF服务的控制台应用程序.我希望能够从WCF服务中的方法触发事件,并在WCF服务的托管过程中处理事件.这可能吗?我该怎么做?我可以从ServiceHost派生自定义类吗?
你不需要继承ServiceHost
.还有其他方法可以解决您的问题.
您可以传递服务类的实例,而不是类型ServiceHost
.因此,您可以在启动之前创建实例ServiceHost
,并将自己的事件处理程序添加到它公开的任何事件中.
这是一些示例代码:
MyService svc = new MyService(); svc.SomeEvent += new MyEventDelegate(this.OnSomeEvent); ServiceHost host = new ServiceHost(svc); host.Open();
使用此方法时有一些注意事项,如http://msdn.microsoft.com/en-us/library/ms585487.aspx中所述.
或者你可以有一个众所周知的单例类,你的服务实例知道并在事件发生时显式调用它的方法.