Exemple #1
0
        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);
        }
Exemple #2
0
 public MessageScopeExtension(MessageScopeCollection collection)
 {
     Collection = collection;
 }