using System; using System.Collections.Generic; using System.Text; using System.ServiceModel; using System.ServiceModel.Channels; namespace System.ServiceModel.Dispatcher { internal abstract class BaseRequestProcessorHandler { BaseRequestProcessorHandler next; public virtual void ProcessRequestChain (MessageProcessingContext mrc) { if (!ProcessRequest (mrc) && next != null ) { next.ProcessRequestChain (mrc); } } public BaseRequestProcessorHandler Next { get { return next; } set { next = value; } } protected abstract bool ProcessRequest (MessageProcessingContext mrc); } }