MessagePartCollection.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // System.Web.Services.Description.MessagePartCollection.cs
  3. //
  4. // Author:
  5. // Tim Coleman ([email protected])
  6. //
  7. // Copyright (C) Tim Coleman, 2002
  8. //
  9. namespace System.Web.Services.Description {
  10. public sealed class MessagePartCollection : ServiceDescriptionBaseCollection {
  11. #region Constructors
  12. internal MessagePartCollection (Message message)
  13. : base (message)
  14. {
  15. }
  16. #endregion
  17. #region Properties
  18. public MessagePart this [int index] {
  19. get {
  20. if (index < 0 || index > Count)
  21. throw new ArgumentOutOfRangeException ();
  22. return (MessagePart) List[index];
  23. }
  24. set { List [index] = value; }
  25. }
  26. public MessagePart this [string name] {
  27. get { return this [IndexOf ((MessagePart) Table[name])]; }
  28. }
  29. #endregion // Properties
  30. #region Methods
  31. public int Add (MessagePart messagePart)
  32. {
  33. Insert (Count, messagePart);
  34. return (Count - 1);
  35. }
  36. public bool Contains (MessagePart messagePart)
  37. {
  38. return List.Contains (messagePart);
  39. }
  40. public void CopyTo (MessagePart[] array, int index)
  41. {
  42. List.CopyTo (array, index);
  43. }
  44. protected override string GetKey (object value)
  45. {
  46. if (!(value is MessagePart))
  47. throw new InvalidCastException ();
  48. return ((MessagePart) value).Name;
  49. }
  50. public int IndexOf (MessagePart messagePart)
  51. {
  52. return List.IndexOf (messagePart);
  53. }
  54. public void Insert (int index, MessagePart messagePart)
  55. {
  56. List.Insert (index, messagePart);
  57. }
  58. public void Remove (MessagePart messagePart)
  59. {
  60. List.Remove (messagePart);
  61. }
  62. protected override void SetParent (object value, object parent)
  63. {
  64. ((MessagePart) value).SetParent ((Message) parent);
  65. }
  66. #endregion // Methods
  67. }
  68. }