InstanceContext CreateInstanceContext (MessageProcessingContext mrc)
{
InstanceContext iCtx = null;
DispatchRuntime dispatchRuntime = mrc.OperationContext.EndpointDispatcher.DispatchRuntime;
IInstanceContextProvider p = dispatchRuntime.InstanceContextProvider;
if (p != null) {
iCtx = p.GetExistingInstanceContext (mrc.IncomingMessage, mrc.OperationContext.Channel);
}
if (iCtx == null) {
ServiceHostBase host = dispatchRuntime.ChannelDispatcher.Host;
iCtx = new InstanceContext (dispatchRuntime.ChannelDispatcher.Host, null, false);
}
iCtx.InstanceManager = new InstanceManager (dispatchRuntime);
return iCtx;
}
}