public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext) { var collection = new MessageScopeCollection(); var scopeInitializers = _provider.GetServices <IMessageScopeInitializer>(); foreach (var initializer in scopeInitializers) { collection.Add(initializer.Initialize(ref request)); } var scopeExtension = instanceContext.Extensions.OfType <ServiceScopeExtension>().FirstOrDefault(); var ext = instanceContext.Extensions.OfType <MessageScopeExtension>().FirstOrDefault(); if (ext == null) { instanceContext.Extensions.Remove(ext); } instanceContext.Extensions.Add(new MessageScopeExtension(collection)); if (scopeExtension != null) { collection.Register(scopeExtension.Scope.ServiceProvider); } return(collection); }
public MessageScopeExtension(MessageScopeCollection collection) { Collection = collection; }