我有一个托管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中所述,使用此方法时有一些注意事项

或者,您可能有一个众所周知的单例类,您的服务实例知道该类,并在事件发生时显式调用其方法。

关于c# - 向WCF主机进程发送消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/139809/

10-10 22:58