PostReceiveRequestHandler.cs 844 B

12345678910111213141516171819202122232425262728293031
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.ServiceModel.Channels;
  5. using System.ServiceModel;
  6. namespace System.ServiceModel.Dispatcher
  7. {
  8. internal class PostReceiveRequestHandler : BaseRequestProcessorHandler
  9. {
  10. protected override bool ProcessRequest (MessageProcessingContext mrc)
  11. {
  12. Message incomingMessage = mrc.IncomingMessage;
  13. EnsureInstanceContextOpen (mrc.InstanceContext);
  14. AfterReceiveRequest (ref incomingMessage, mrc);
  15. mrc.IncomingMessage = incomingMessage;
  16. return false;
  17. }
  18. void AfterReceiveRequest (ref Message message, MessageProcessingContext mrc)
  19. {
  20. mrc.EventsHandler.AfterReceiveRequest ();
  21. }
  22. void EnsureInstanceContextOpen (InstanceContext ictx)
  23. {
  24. if (ictx.State != CommunicationState.Opened)
  25. ictx.Open ();
  26. }
  27. }
  28. }