First off I'd just like to mention that I love your work here, I've learnt a lot just by going through the source.
My specific question is how ChannelManager's GetChannel would function with multiple servers which use the same interface contract. Wouldn't it just create the channel once for the first server queried and then return that same channel
every time after?
I ask because from what I understand, it appears to only be matching on the serviceType and I can't seem to see any reference to the location that service is being hosted but perhaps I'm just missing something obvious.
Server A with contract IFoo
Server B with contract IFoo
Client wants to make a call to both server A/B using contract IFoo with the same method.
In the example above wouldn't the ChannelManager create one channel for which ever server was hit first and then return that same channel for the other server due to use of the same contract?