我有以下情况:
- 一个服务契约接口(IInterface)
- 接口内声明的事件(我稍后会解释目的)
- 实现此接口的一个类,服务类(MyClass)
- 使用接口契约打开通道并获取代理类的客户端,该类公开所有实例的成员,包括事件。
当我创建我的服务类的实例时,例如:
IInterface instance = (IInterface)new MyClass();
从那里,我可以做到:
instance.Event1 += OnEvent1;
但是当我创建代理客户端时:
IInterface proxy = new ChannelFactory<IInterface>(....);
Event1 是如何暴露在代理客户端中的?它们只是代理端的事件,对吗?它们与服务器类完全断开连接,对吧?
所以,我可以这样做:
proxy.Event1 += OnEvent1;
但是Event1
永远不会从 WCF 服务器类实例中调用,对吗?
如果 WCF 服务器类执行以下事件检查会发生什么:
if (Event1 != null)
{ Event1(); }
...什么都没发生?