2011-10-28 27 views
1

我在使用ChannelFactory.CreateChannel()对服务执行操作之前每次都创建通道。在操作结束时,如果有任何例外情况,我将关闭频道或中止频道。WCF:如果我使用ChannelFactory并为每个操作创建通道,是否必须监听Channel.Faulted事件

由于我每次都创建一个频道,是否必须收听“Faulted”事件。

顺便说一句,为什么channelFactory有Faulted事件,当所有的东西都是由通道完成的。

或者 - 当这个工厂创建的任何通道出现故障时它会被激活?

在此先感谢, 梦想家!

回答

2

我会听Faulted事件的唯一原因是如果我想要做一些特别的事情发生(除了中止频道)。我无法想到使用它的原因 - 但这并不意味着没有一个。

在你的情况下,如果你在发生错误时中止通道,那么你很好 - 你不需要处理Faulted事件。

FactoryChannel<T> implements ICommunicationObject,它定义了一个故障事件。 MSDN说:“为系统中所有面向通信的对象定义基本状态机的合同,包括渠道,渠道经理,工厂,听众和调度员以及服务主机。

FactoryChannel<T>.CreateChannel返回一个类型IChannel,它也实现了ICommunicationObject。

+0

所以他们是一样的? (对不起,如果这个问题听起来很愚蠢,但我真的不明白:-)) –

相关问题