I found in MSDN that ChannelFactory-based client cannot use event-driven asynchronous calling model, but a ServiceModel.ClientBase-based client can
How is this justified? What are the reasons for it? Here is the MSDN link http://msdn.microsoft.com/en-us/library/ms731177.
ClientBaseis a wrapper aroundChannelFactory.ClientBasewas intended to work withsvcutil.exeto enable direct support via the/asyncflag for both event-based and callback/delegate-based asynchronous methods.The
ChannelFactoryitself has no knowledge of the Begin/End pattern, so you need to useClientBaseto achieve the built-in async-awareness or create it yourself withChannelFactory.