1 // 2 // System.Web.Services.Description.MessageCollection.cs 3 // 4 // Author: 5 // Tim Coleman (tim@timcoleman.com) 6 // 7 // Copyright (C) Tim Coleman, 2002 8 // 9 10 // 11 // Permission is hereby granted, free of charge, to any person obtaining 12 // a copy of this software and associated documentation files (the 13 // "Software"), to deal in the Software without restriction, including 14 // without limitation the rights to use, copy, modify, merge, publish, 15 // distribute, sublicense, and/or sell copies of the Software, and to 16 // permit persons to whom the Software is furnished to do so, subject to 17 // the following conditions: 18 // 19 // The above copyright notice and this permission notice shall be 20 // included in all copies or substantial portions of the Software. 21 // 22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 // 30 31 namespace System.Web.Services.Description { 32 public sealed class MessageCollection : ServiceDescriptionBaseCollection { 33 34 #region Constructors 35 MessageCollection(ServiceDescription serviceDescription)36 internal MessageCollection (ServiceDescription serviceDescription) 37 : base (serviceDescription) 38 { 39 } 40 41 #endregion 42 43 #region Properties 44 45 public Message this [int index] { 46 get { 47 if (index < 0 || index > Count) 48 throw new ArgumentOutOfRangeException (); 49 50 return (Message) List [index]; 51 } 52 set { List [index] = value; } 53 } 54 55 public Message this [string name] { 56 get { 57 int index = IndexOf ((Message) Table [name]); 58 if (index >= 0) 59 return this [index]; 60 return null; 61 } 62 } 63 64 #endregion // Properties 65 66 #region Methods 67 Add(Message message)68 public int Add (Message message) 69 { 70 Insert (Count, message); 71 return (Count - 1); 72 } 73 Contains(Message message)74 public bool Contains (Message message) 75 { 76 return List.Contains (message); 77 } 78 CopyTo(Message[] array, int index)79 public void CopyTo (Message[] array, int index) 80 { 81 List.CopyTo (array, index); 82 } 83 GetKey(object value)84 protected override string GetKey (object value) 85 { 86 if (!(value is Message)) 87 throw new InvalidCastException (); 88 89 return ((Message) value).Name; 90 } 91 IndexOf(Message message)92 public int IndexOf (Message message) 93 { 94 return List.IndexOf (message); 95 } 96 Insert(int index, Message message)97 public void Insert (int index, Message message) 98 { 99 List.Insert (index, message); 100 } 101 Remove(Message message)102 public void Remove (Message message) 103 { 104 List.Remove (message); 105 } 106 SetParent(object value, object parent)107 protected override void SetParent (object value, object parent) 108 { 109 ((Message) value).SetParent ((ServiceDescription) parent); 110 } 111 112 #endregion // Methods 113 } 114 } 115