将消息发送到WCF主机进程

dot*_*eer 16 c# wcf

我有一个托管WCF服务的控制台应用程序.我希望能够从WCF服务中的方法触发事件,并在WCF服务的托管过程中处理事件.这可能吗?我该怎么做?我可以从ServiceHost派生自定义类吗?

Fra*_*nov 15

你不需要继承ServiceHost.还有其他方法可以解决您的问题.

您可以传递服务类的实例,而不是类型ServiceHost.因此,您可以在启动之前创建实例ServiceHost,并将自己的事件处理程序添加到它公开的任何事件中.

这是一些示例代码:

MyService svc = new MyService();
svc.SomeEvent += new MyEventDelegate(this.OnSomeEvent);
ServiceHost host = new ServiceHost(svc);
host.Open();
Run Code Online (Sandbox Code Playgroud)

使用此方法时有一些注意事项,如http://msdn.microsoft.com/en-us/library/ms585487.aspx中所述.

或者你可以有一个众所周知的单例类,你的服务实例知道并在事件发生时显式调用它的方法.