Fix the issue that callback contract often gets confused by picking unexpected contra...
commit0c7a1a1f5c25b14823d3daecaefbcc1463901098
authorAtsushi Eno <atsushi@ximian.com>
Wed, 29 Sep 2010 07:41:59 +0000 (29 16:41 +0900)
committerAtsushi Eno <atsushi@ximian.com>
Wed, 29 Sep 2010 07:41:59 +0000 (29 16:41 +0900)
tree0b1dc571fefc78ca3811f793155d064387838424
parent957abaee41d4a8a6cb98471c159ae79001edf0fc
Fix the issue that callback contract often gets confused by picking unexpected contract type.

The problem is that DispatchRuntime.Type is a service implementation type
that could implement two or more contract interfaces, and it was in random
order how ServiceProxyGenerator picks up the contract type. Now it looks
for correct contract type instead of the service type by exactly looking
for the target contract in the endpoint (dispatcher).
mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/EndpointDispatcher.cs
mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/InputOrReplyRequestProcessor.cs
mcs/class/System.ServiceModel/System.ServiceModel/ServiceHostBase.cs
mcs/class/System.ServiceModel/System.ServiceModel/ServiceProxyGenerator.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Dispatcher/DispatchRuntimeTest.cs