e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
199 lines
8.3 KiB
C#
199 lines
8.3 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="ServiceDescriptions.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Web.Services.Description {
|
|
|
|
using System.Xml;
|
|
using System.Xml.Serialization;
|
|
using System.Xml.Schema;
|
|
using System.Collections;
|
|
using System;
|
|
using System.IO;
|
|
using System.ComponentModel;
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public sealed class ServiceDescriptionCollection : ServiceDescriptionBaseCollection {
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.ServiceDescriptionCollection"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public ServiceDescriptionCollection() : base(null) { }
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.this"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public ServiceDescription this[int index] {
|
|
get { return (ServiceDescription)List[index]; }
|
|
set { List[index] = value; }
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.this1"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public ServiceDescription this[string ns] {
|
|
get { return (ServiceDescription)Table[ns]; }
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.Add"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public int Add(ServiceDescription serviceDescription) {
|
|
return List.Add(serviceDescription);
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.Insert"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public void Insert(int index, ServiceDescription serviceDescription) {
|
|
List.Insert(index, serviceDescription);
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.IndexOf"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public int IndexOf(ServiceDescription serviceDescription) {
|
|
return List.IndexOf(serviceDescription);
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.Contains"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public bool Contains(ServiceDescription serviceDescription) {
|
|
return List.Contains(serviceDescription);
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.Remove"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public void Remove(ServiceDescription serviceDescription) {
|
|
List.Remove(serviceDescription);
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.CopyTo"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public void CopyTo(ServiceDescription[] array, int index) {
|
|
List.CopyTo(array, index);
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.GetKey"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
protected override string GetKey(object value) {
|
|
string ns = ((ServiceDescription)value).TargetNamespace;
|
|
if (ns == null)
|
|
return string.Empty;
|
|
return ns;
|
|
}
|
|
|
|
Exception ItemNotFound(XmlQualifiedName name, string type) {
|
|
return new Exception(Res.GetString(Res.WebDescriptionMissingItem, type, name.Name, name.Namespace));
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.GetMessage"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public Message GetMessage(XmlQualifiedName name) {
|
|
ServiceDescription sd = GetServiceDescription(name);
|
|
Message message = null;
|
|
while (message == null && sd != null) {
|
|
message = sd.Messages[name.Name];
|
|
sd = sd.Next;
|
|
}
|
|
if (message == null) throw ItemNotFound(name, "message");
|
|
return message;
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.GetPortType"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public PortType GetPortType(XmlQualifiedName name) {
|
|
ServiceDescription sd = GetServiceDescription(name);
|
|
PortType portType = null;
|
|
while (portType == null && sd != null) {
|
|
portType = sd.PortTypes[name.Name];
|
|
sd = sd.Next;
|
|
}
|
|
if (portType == null) throw ItemNotFound(name, "message");
|
|
return portType;
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.GetService"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public Service GetService(XmlQualifiedName name) {
|
|
ServiceDescription sd = GetServiceDescription(name);
|
|
Service service = null;
|
|
while (service == null && sd != null) {
|
|
service = sd.Services[name.Name];
|
|
sd = sd.Next;
|
|
}
|
|
if (service == null) throw ItemNotFound(name, "service");
|
|
return service;
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.GetBinding"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
public Binding GetBinding(XmlQualifiedName name) {
|
|
ServiceDescription sd = GetServiceDescription(name);
|
|
Binding binding = null;
|
|
while (binding == null && sd != null) {
|
|
binding = sd.Bindings[name.Name];
|
|
sd = sd.Next;
|
|
}
|
|
if (binding == null) throw ItemNotFound(name, "binding");
|
|
return binding;
|
|
}
|
|
|
|
ServiceDescription GetServiceDescription(XmlQualifiedName name) {
|
|
ServiceDescription serviceDescription = this[name.Namespace];
|
|
if (serviceDescription == null) {
|
|
throw new ArgumentException(Res.GetString(Res.WebDescriptionMissing, name.ToString(), name.Namespace), "name");
|
|
}
|
|
return serviceDescription;
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionCollection.SetParent"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
protected override void SetParent(object value, object parent) {
|
|
((ServiceDescription)value).SetParent((ServiceDescriptionCollection)parent);
|
|
}
|
|
|
|
/// <include file='doc\ServiceDescriptions.uex' path='docs/doc[@for="ServiceDescriptionBaseCollection.OnInsertComplete"]/*' />
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
protected override void OnInsertComplete(int index, object value) {
|
|
string key = GetKey(value);
|
|
if (key != null) {
|
|
ServiceDescription item = (ServiceDescription)Table[key];
|
|
((ServiceDescription)value).Next = (ServiceDescription)Table[key];
|
|
Table[key] = value;
|
|
}
|
|
SetParent(value, this);
|
|
}
|
|
}
|
|
}
|