开发者

What state is contained in a WCF Client object?

开发者 https://www.devze.com 2023-01-08 04:17 出处:网络
Like the title says, I\'m curious to know what state is contained in a WCF client proxy object - should I be new\'ing up tons of these casually and not caring? Or are they more heavyweight and I shoul

Like the title says, I'm curious to know what state is contained in a WCF client proxy object - should I be new'ing up tons of these casually and not caring? Or are they more heavyweight and I shouldn't be so cavalier about 开发者_如何学Pythoncreating them?


Not much really - the link to the communication channel, it's state - that's about it. WCF tends to be very much stateless, so both your client and the server won't really hang on to a lot of state.

The cost of client-side proxy generation is two-part:

  • first, there's a ChannelFactory<T> that needs to be created (where T is your service contract, e.g. IMyService). This part is fairly heavyweight, so if you can, cache the channel factory

  • second, the channel factory is used to create the actual channel - this is quite a simple operation, and you shouldn't bother to cache this.

If you've used the Add Service Reference functionality in Visual Studio, or svcutil.exe on the command line, you usually end up with a (YourService)Client class - this basically encapsulates those two steps for you.

If you feel the urge to optimize, check out this two-step process and see if you can make it work for you, and if caching the factory (and thus limiting the number of factory instantiations) makes a difference for you.

0

精彩评论

暂无评论...
验证码 换一张
取 消