2 // System.Web.Services.Description.ServiceDescriptionCollection.cs
\r
5 // Tim Coleman (tim@timcoleman.com)
\r
7 // Copyright (C) Tim Coleman, 2002
\r
10 using System.Web.Services;
\r
13 namespace System.Web.Services.Description {
\r
14 public sealed class ServiceDescriptionCollection : ServiceDescriptionBaseCollection {
\r
16 #region Constructors
\r
18 public ServiceDescriptionCollection ()
\r
23 #endregion // Constructors
\r
27 public ServiceDescription this [int index] {
\r
29 if (index < 0 || index > Count)
\r
30 throw new ArgumentOutOfRangeException ();
\r
32 return (ServiceDescription) List[index];
\r
34 set { List [index] = value; }
\r
37 public ServiceDescription this [string ns] {
\r
38 get { return this[IndexOf ((ServiceDescription) Table[ns])]; }
\r
41 #endregion // Properties
\r
45 public int Add (ServiceDescription serviceDescription)
\r
47 Insert (Count, serviceDescription);
\r
51 public bool Contains (ServiceDescription serviceDescription)
\r
53 return List.Contains (serviceDescription);
\r
56 public void CopyTo (ServiceDescription[] array, int index)
\r
58 List.CopyTo (array, index);
\r
61 public Binding GetBinding (XmlQualifiedName name)
\r
63 foreach (object value in List)
\r
64 foreach (Binding binding in ((ServiceDescription) value).Bindings)
\r
65 if (binding.Name == name.Name)
\r
67 throw new Exception ();
\r
70 protected override string GetKey (object value)
\r
72 if (!(value is ServiceDescription))
\r
73 throw new InvalidCastException ();
\r
74 return ((ServiceDescription) value).TargetNamespace;
\r
77 public Message GetMessage (XmlQualifiedName name)
\r
79 foreach (object value in List)
\r
80 foreach (Message message in ((ServiceDescription) value).Messages)
\r
81 if (message.Name == name.Name)
\r
83 throw new Exception ();
\r
86 public PortType GetPortType (XmlQualifiedName name)
\r
88 foreach (object value in List)
\r
89 foreach (PortType portType in ((ServiceDescription) value).PortTypes)
\r
90 if (portType.Name == name.Name)
\r
92 throw new Exception ();
\r
95 public Service GetService (XmlQualifiedName name)
\r
97 foreach (object value in List)
\r
98 foreach (Service service in ((ServiceDescription) value).Services)
\r
99 if (service.Name == name.Name)
\r
101 throw new Exception ();
\r
104 public int IndexOf (ServiceDescription serviceDescription)
\r
106 return List.IndexOf (serviceDescription);
\r
109 public void Insert (int index, ServiceDescription serviceDescription)
\r
111 List.Insert (index, serviceDescription);
\r
114 public void Remove (ServiceDescription serviceDescription)
\r
116 List.Remove (serviceDescription);
\r
119 protected override void SetParent (object value, object parent)
\r
121 ((ServiceDescription) value).SetParent ((ServiceDescriptionCollection) parent);
\r
124 #endregion // Methods
\r