New tests.
[mono.git] / mcs / class / System.ServiceModel / System.ServiceModel.Dispatcher / EndpointDispatcher.cs
index fa5e968f5f8c0dd205680c065aaea68d5cb9a296..f8568b7e0781aa9f0ae501f95c6f51326338ab59 100644 (file)
@@ -114,17 +114,16 @@ namespace System.ServiceModel.Dispatcher
                        set { filter_priority = value; }
                }
 
-               internal void InitializeServiceEndpoint (bool isCallback, ChannelDispatcher channelDispatcher, Type serviceType, ServiceEndpoint se)
+               internal void InitializeServiceEndpoint (bool isCallback, Type serviceType, ServiceEndpoint se)
                {
                        this.ContractFilter = GetContractFilter (se.Contract);
-                       this.ChannelDispatcher = channelDispatcher;
 
                        this.DispatchRuntime.Type = serviceType;
                        
                        //Build the dispatch operations
                        DispatchRuntime db = this.DispatchRuntime;
                        if (!isCallback && se.Contract.CallbackContractType != null) {
-                               var ccd = ContractDescriptionGenerator.GetCallbackContract (se.Contract.CallbackContractType);
+                               var ccd = ContractDescriptionGenerator.GetCallbackContract (db.Type, se.Contract.CallbackContractType);
                                db.CallbackClientRuntime = ccd.CreateClientRuntime ();
                                db.CallbackClientRuntime.CallbackClientType = ccd.ContractType;
                        }
@@ -160,11 +159,14 @@ namespace System.ServiceModel.Dispatcher
                                }
                        }
 
+                       foreach (var fd in od.Faults)
+                               o.FaultContractInfos.Add (new FaultContractInfo (fd.Action, fd.DetailType));
+
                        // Setup Invoker
                        o.Invoker = new DefaultOperationInvoker (od);
 
                        // Setup Formater
-                       o.Formatter = BaseMessagesFormatter.Create (od);
+                       o.Formatter = new OperationFormatter (od, false, false); // FIXME: pass correct isRpc, isEncoded
 
                        if (o.Action == "*" && (o.IsOneWay || o.ReplyAction == "*")) {
                                //Signature : Message  (Message)