ReceiveCompletedEventArgs.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. //------------------------------------------------------------------------------
  2. // <copyright file="ReceiveCompletedEventArgs.cs" company="Microsoft">
  3. // Copyright (c) Microsoft Corporation. All rights reserved.
  4. // </copyright>
  5. //------------------------------------------------------------------------------
  6. using System;
  7. namespace Experimental.System.Messaging
  8. {
  9. /// <include file='doc\ReceiveCompletedEventArgs.uex' path='docs/doc[@for="ReceiveCompletedEventArgs"]/*' />
  10. /// <devdoc>
  11. /// <para>Provides data for the <see cref='System.Messaging.MessageQueue.ReceiveCompleted'/>
  12. /// event.</para>
  13. /// </devdoc>
  14. public class ReceiveCompletedEventArgs : EventArgs
  15. {
  16. private IAsyncResult result;
  17. private Message message;
  18. private MessageQueue sender;
  19. /// <include file='doc\ReceiveCompletedEventArgs.uex' path='docs/doc[@for="ReceiveCompletedEventArgs.ReceiveCompletedEventArgs"]/*' />
  20. /// <internalonly/>
  21. internal ReceiveCompletedEventArgs(MessageQueue sender, IAsyncResult result)
  22. {
  23. this.result = result;
  24. this.sender = sender;
  25. }
  26. /// <include file='doc\ReceiveCompletedEventArgs.uex' path='docs/doc[@for="ReceiveCompletedEventArgs.AsyncResult"]/*' />
  27. /// <devdoc>
  28. /// <para>Contains the result of the asynchronous
  29. /// operation requested.</para>
  30. /// </devdoc>
  31. public IAsyncResult AsyncResult
  32. {
  33. get
  34. {
  35. return this.result;
  36. }
  37. set
  38. {
  39. this.result = value;
  40. }
  41. }
  42. /// <include file='doc\ReceiveCompletedEventArgs.uex' path='docs/doc[@for="ReceiveCompletedEventArgs.Message"]/*' />
  43. /// <devdoc>
  44. /// <para>The end result of the posted asynchronous receive
  45. /// operation.</para>
  46. /// </devdoc>
  47. public Message Message
  48. {
  49. get
  50. {
  51. if (this.message == null)
  52. {
  53. try
  54. {
  55. this.message = this.sender.EndReceive(result);
  56. }
  57. catch
  58. {
  59. throw;
  60. }
  61. }
  62. return this.message;
  63. }
  64. }
  65. }
  66. }