PerCallInstanceContextProvider.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //-----------------------------------------------------------------------------
  4. namespace System.ServiceModel.Dispatcher
  5. {
  6. using System;
  7. using System.ServiceModel;
  8. using System.ServiceModel.Channels;
  9. internal class PerCallInstanceContextProvider : InstanceContextProviderBase
  10. {
  11. internal PerCallInstanceContextProvider(DispatchRuntime dispatchRuntime)
  12. : base(dispatchRuntime)
  13. {
  14. }
  15. #region IInstanceContextProvider Members
  16. public override InstanceContext GetExistingInstanceContext(Message message, IContextChannel channel)
  17. {
  18. //Always return null so we will create new InstanceContext for each message
  19. return null;
  20. }
  21. public override void InitializeInstanceContext(InstanceContext instanceContext, Message message, IContextChannel channel)
  22. {
  23. //no-op
  24. }
  25. public override bool IsIdle(InstanceContext instanceContext)
  26. {
  27. //By default return true if no channels are bound to this context
  28. return true;
  29. }
  30. public override void NotifyIdle(InstanceContextIdleCallback callback, InstanceContext instanceContext)
  31. {
  32. //no-op
  33. }
  34. #endregion
  35. }
  36. }