void BuildScriptDispatcher(ServiceEndpoint endpoint, EndpointDispatcher ed, string subPath, bool debug) { var instance = new InteropScriptService(endpoint.Contract.ContractType, endpoint.Address.Uri.ToString(), debug); var cdOrg = ed.ChannelDispatcher; var baseUriString = endpoint.ListenUri.ToString(); var uri = new Uri(String.Concat(baseUriString, baseUriString [baseUriString.Length - 1] == '/' ? String.Empty : "/", subPath)); var listener = endpoint.Binding.BuildChannelListener <IReplyChannel> (uri); var cd = new ChannelDispatcher(listener, String.Empty); cd.MessageVersion = MessageVersion.None; cd.Endpoints.Add(new EndpointDispatcher(new EndpointAddress(uri), "InteropScriptService", String.Empty) { ContractFilter = new MatchAllMessageFilter() }); var dr = cd.Endpoints [0].DispatchRuntime; var dop = new DispatchOperation(dr, "Get", "*", "*"); dop.DeserializeRequest = false; dop.SerializeReply = false; dop.Invoker = new DummyInvoker(instance); dr.UnhandledDispatchOperation = dop; dr.InstanceContextProvider = new SingletonInstanceContextProvider(new InstanceContext(cdOrg.Host, instance)); var host = ed.ChannelDispatcher.Host; host.ChannelDispatchers.Add(cd); }
public DummyInvoker (InteropScriptService instance) { this.instance = instance; }
void BuildScriptDispatcher (ServiceEndpoint endpoint, EndpointDispatcher ed, string subPath, bool debug) { var instance = new InteropScriptService (endpoint.Contract.ContractType, endpoint.Address.Uri.ToString (), debug); var cdOrg = ed.ChannelDispatcher; var baseUriString = endpoint.ListenUri.ToString (); var uri = new Uri (String.Concat (baseUriString, baseUriString [baseUriString.Length - 1] == '/' ? String.Empty : "/", subPath)); var listener = endpoint.Binding.BuildChannelListener<IReplyChannel> (uri); var cd = new ChannelDispatcher (listener, String.Empty); cd.MessageVersion = MessageVersion.None; cd.Endpoints.Add (new EndpointDispatcher (new EndpointAddress (uri), "InteropScriptService", String.Empty) { ContractFilter = new MatchAllMessageFilter () }); var dr = cd.Endpoints [0].DispatchRuntime; var dop = new DispatchOperation (dr, "Get", "*", "*"); dop.DeserializeRequest = false; dop.SerializeReply = false; dop.Invoker = new DummyInvoker (instance); dr.UnhandledDispatchOperation = dop; dr.InstanceContextProvider = new SingletonInstanceContextProvider (new InstanceContext (cdOrg.Host, instance)); var host = ed.ChannelDispatcher.Host; host.ChannelDispatchers.Add (cd); }
public DummyInvoker(InteropScriptService instance) { this.instance = instance; }