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;
}
}
}
+ 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)