語言

ServiceDescriptionBaseCollection 類別

定義

構成強型別集合的基礎,這些集合是命名空間成員 System.Web.Services.Description 。

public ref class ServiceDescriptionBaseCollection abstract : System::Collections::CollectionBase
public abstract class ServiceDescriptionBaseCollection : System.Collections.CollectionBase
type ServiceDescriptionBaseCollection = class
    inherit CollectionBase
Public MustInherit Class ServiceDescriptionBaseCollection
Inherits CollectionBase
繼承
ServiceDescriptionBaseCollection
衍生

範例

static void MyMethod( ServiceDescriptionBaseCollection^ myServiceCollection )
{
   Type^ myType = myServiceCollection->GetType();
   if ( myType->Equals( System::Web::Services::Description::ServiceCollection::typeid ) )
   {
      // Remove the services at index 0 of the collection.
      (dynamic_cast<ServiceCollection^>(myServiceCollection))->Remove( myServiceDescription->Services[ 0 ] );

      // Build a new Service.
      Service^ myService = gcnew Service;
      myService->Name = "MathService";
      XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MathServiceSoap" );

      // Build a new Port for SOAP.
      Port^ mySoapPort = gcnew Port;
      mySoapPort->Name = "MathServiceSoap";
      mySoapPort->Binding = myXmlQualifiedName;
      SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding;
      mySoapAddressBinding->Location = "http://localhost/"
      "ServiceDescriptionBaseCollection/AddSubtractService.CS.asmx";
      mySoapPort->Extensions->Add( mySoapAddressBinding );

      // Build a new Port for HTTP-GET.
      XmlQualifiedName^ myXmlQualifiedName2 = gcnew XmlQualifiedName( "s0:MathServiceHttpGet" );
      Port^ myHttpGetPort = gcnew Port;
      myHttpGetPort->Name = "MathServiceHttpGet";
      myHttpGetPort->Binding = myXmlQualifiedName2;
      HttpAddressBinding^ myHttpAddressBinding = gcnew HttpAddressBinding;
      myHttpAddressBinding->Location = "http://localhost/"
      "ServiceDescriptionBaseCollection/AddSubtractService.CS.asmx";
      myHttpGetPort->Extensions->Add( myHttpAddressBinding );

      // Add the ports to the Service.
      myService->Ports->Add( myHttpGetPort );
      myService->Ports->Add( mySoapPort );

      // Add the Service to the ServiceCollection.
      myServiceDescription->Services->Add( myService );
   }
   else
   if ( myType->Equals( System::Web::Services::Description::BindingCollection::typeid ) )
   {
      // Remove the Binding in the BindingCollection at index 0.
      (dynamic_cast<BindingCollection^>(myServiceCollection))->Remove( myServiceDescription->Bindings[ 0 ] );

      // Build a new Binding.
      Binding^ myBinding = gcnew Binding;
      myBinding->Name = "MathServiceSoap";
      XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MathServiceSoap" );
      myBinding->Type = myXmlQualifiedName;
      SoapBinding^ mySoapBinding = gcnew SoapBinding;
      mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http";
      mySoapBinding->Style = SoapBindingStyle::Document;

      // Create the operations for the binding.
      OperationBinding^ addOperationBinding = CreateOperationBinding( "Add", myServiceDescription->TargetNamespace );
      OperationBinding^ subtractOperationBinding = CreateOperationBinding( "Subtract", myServiceDescription->TargetNamespace );

      // Add the operations to the Binding.
      myBinding->Operations->Add( subtractOperationBinding );
      myBinding->Operations->Add( addOperationBinding );
      myBinding->Extensions->Add( mySoapBinding );

      // Add the Binding to the Bindings collection.
      myServiceDescription->Bindings->Add( myBinding );
   }
   else
   if ( myType->Equals( System::Web::Services::Description::PortTypeCollection::typeid ) )
   {
      // Remove the PortType at index 0.
      (dynamic_cast<PortTypeCollection^>(myServiceCollection))->Remove( myServiceDescription->PortTypes[ 0 ] );

      // Build a new PortType.
      PortType^ myPortType = gcnew PortType;
      myPortType->Name = "MathServiceSoap";

      // Build an Add Operation for the PortType.
      Operation^ myAddOperation = gcnew Operation;
      myAddOperation->Name = "Add";

      // Build the Input and Output messages for the Operations.
      OperationInput^ myOperationInputMessage1 = gcnew OperationInput;
      XmlQualifiedName^ myXmlQualifiedName1 = gcnew XmlQualifiedName( "s0:AddSoapIn" );
      myOperationInputMessage1->Message = myXmlQualifiedName1;
      OperationOutput^ myOperationOutputMessage1 = gcnew OperationOutput;
      XmlQualifiedName^ myXmlQualifiedName2 = gcnew XmlQualifiedName( "s0:AddSoapOut" );
      myOperationOutputMessage1->Message = myXmlQualifiedName2;

      // Add the messages to the operations.
      myAddOperation->Messages->Add( myOperationInputMessage1 );
      myAddOperation->Messages->Add( myOperationOutputMessage1 );

      // Build an Add Operation for the PortType.
      Operation^ mySubtractOperation = gcnew Operation;
      mySubtractOperation->Name = "Subtract";

      // Build the Input and Output messages for the operations.
      OperationInput^ myOperationInputMessage2 = gcnew OperationInput;
      XmlQualifiedName^ myXmlQualifiedName3 = gcnew XmlQualifiedName( "s0:SubtractSoapIn" );
      myOperationInputMessage2->Message = myXmlQualifiedName3;
      OperationOutput^ myOperationOutputMessage2 = gcnew OperationOutput;
      XmlQualifiedName^ myXmlQualifiedName4 = gcnew XmlQualifiedName( "s0:SubtractSoapOut" );
      myOperationOutputMessage2->Message = myXmlQualifiedName4;

      // Add the messages to the operations.
      mySubtractOperation->Messages->Add( myOperationInputMessage2 );
      mySubtractOperation->Messages->Add( myOperationOutputMessage2 );

      // Add the operations to the PortType.
      myPortType->Operations->Add( myAddOperation );
      myPortType->Operations->Add( mySubtractOperation );

      // Add the PortType to the collection.
      myServiceDescription->PortTypes->Add( myPortType );
   }
}
public static void MyMethod(
   ServiceDescriptionBaseCollection myServiceCollection)
{
   Type myType = myServiceCollection.GetType();
   if (myType.Equals(
      typeof(System.Web.Services.Description.ServiceCollection)))
   {
      // Remove the services at index 0 of the collection.
      ((ServiceCollection)myServiceCollection).Remove(
         myServiceDescription.Services[0]);

      // Build a new Service.
      Service myService =new Service();
      myService.Name="MathService";
      XmlQualifiedName myXmlQualifiedName =
         new XmlQualifiedName("s0:MathServiceSoap");

      // Build a new Port for SOAP.
      Port mySoapPort= new Port();
      mySoapPort.Name="MathServiceSoap";
      mySoapPort.Binding=myXmlQualifiedName;
      SoapAddressBinding mySoapAddressBinding = new SoapAddressBinding();
      mySoapAddressBinding.Location = "http://localhost/" +
         "ServiceDescriptionBaseCollection/AddSubtractService.CS.asmx";
      mySoapPort.Extensions.Add(mySoapAddressBinding);

      // Build a new Port for HTTP-GET.
      XmlQualifiedName myXmlQualifiedName2 =
         new XmlQualifiedName("s0:MathServiceHttpGet");
      Port myHttpGetPort= new Port();
      myHttpGetPort.Name="MathServiceHttpGet";
      myHttpGetPort.Binding=myXmlQualifiedName2;
      HttpAddressBinding myHttpAddressBinding = new HttpAddressBinding();
      myHttpAddressBinding.Location = "http://localhost/" +
         "ServiceDescriptionBaseCollection/AddSubtractService.CS.asmx";
      myHttpGetPort.Extensions.Add(myHttpAddressBinding);

      // Add the ports to the Service.
      myService.Ports.Add(myHttpGetPort);
      myService.Ports.Add(mySoapPort);

      // Add the Service to the ServiceCollection.
      myServiceDescription.Services.Add(myService);
   }
   else if(myType.Equals(
      typeof(System.Web.Services.Description.BindingCollection)))
   {
      // Remove the Binding in the BindingCollection at index 0.
      ((BindingCollection)myServiceCollection).Remove(
         myServiceDescription.Bindings[0]);

      // Build a new Binding.
      Binding myBinding = new Binding();
      myBinding.Name = "MathServiceSoap";
      XmlQualifiedName myXmlQualifiedName =
         new XmlQualifiedName("s0:MathServiceSoap");
      myBinding.Type=myXmlQualifiedName;
      SoapBinding mySoapBinding = new SoapBinding();
      mySoapBinding.Transport = "http://schemas.xmlsoap.org/soap/http";
      mySoapBinding.Style = SoapBindingStyle.Document;

      // Create the operations for the binding.
      OperationBinding addOperationBinding = CreateOperationBinding(
         "Add", myServiceDescription.TargetNamespace);
      OperationBinding subtractOperationBinding = CreateOperationBinding(
         "Subtract",myServiceDescription.TargetNamespace);

      // Add the operations to the Binding.
      myBinding.Operations.Add(subtractOperationBinding);
      myBinding.Operations.Add(addOperationBinding);
      myBinding.Extensions.Add(mySoapBinding);

      // Add the Binding to the Bindings collection.
      myServiceDescription.Bindings.Add(myBinding);
   }
   else if (myType.Equals(
      typeof(System.Web.Services.Description.PortTypeCollection)))
   {
      // Remove the PortType at index 0.
      ((PortTypeCollection)myServiceCollection).Remove(
         myServiceDescription.PortTypes[0]);

      // Build a new PortType.
       PortType myPortType = new PortType();
       myPortType.Name = "MathServiceSoap";

      // Build an Add Operation for the PortType.
       Operation myAddOperation = new Operation();
       myAddOperation.Name="Add";

       // Build the Input and Output messages for the Operations.
       OperationInput myOperationInputMessage1 = new OperationInput();
       XmlQualifiedName myXmlQualifiedName1 =
          new XmlQualifiedName("s0:AddSoapIn");
       myOperationInputMessage1.Message = myXmlQualifiedName1;

       OperationOutput myOperationOutputMessage1 = new OperationOutput();
       XmlQualifiedName myXmlQualifiedName2 =
          new XmlQualifiedName("s0:AddSoapOut");
       myOperationOutputMessage1.Message=myXmlQualifiedName2;

       // Add the messages to the operations.
       myAddOperation.Messages.Add(myOperationInputMessage1);
       myAddOperation.Messages.Add(myOperationOutputMessage1);

       // Build an Add Operation for the PortType.
       Operation mySubtractOperation = new Operation();
       mySubtractOperation.Name = "Subtract";

       // Build the Input and Output messages for the operations.
       OperationInput myOperationInputMessage2 = new OperationInput();
       XmlQualifiedName myXmlQualifiedName3 =
          new XmlQualifiedName("s0:SubtractSoapIn");
       myOperationInputMessage2.Message = myXmlQualifiedName3;
       OperationOutput myOperationOutputMessage2 = new OperationOutput();
       XmlQualifiedName myXmlQualifiedName4 =
          new XmlQualifiedName("s0:SubtractSoapOut");
       myOperationOutputMessage2.Message = myXmlQualifiedName4;

       // Add the messages to the operations.
       mySubtractOperation.Messages.Add(myOperationInputMessage2);
       mySubtractOperation.Messages.Add(myOperationOutputMessage2);

       // Add the operations to the PortType.
       myPortType.Operations.Add(myAddOperation);
       myPortType.Operations.Add(mySubtractOperation);

       // Add the PortType to the collection.
       myServiceDescription.PortTypes.Add(myPortType);
   }
 }
Public Shared Sub MyMethod(myServiceCollection As _
   ServiceDescriptionBaseCollection)
   Dim myType As Type = myServiceCollection.GetType()
   If myType.Equals( _
      GetType(System.Web.Services.Description.ServiceCollection)) Then

      ' Remove the services at index 0 of the collection.
      CType(myServiceCollection, ServiceCollection).Remove( _
         myServiceDescription.Services(0))

      ' Build a new Service.
      Dim myService As New Service()
      myService.Name = "MathService"
      Dim myXmlQualifiedName As _
         New XmlQualifiedName("s0:MathServiceSoap")

      ' Build a new Port for SOAP.
      Dim mySoapPort As New Port()
      mySoapPort.Name = "MathServiceSoap"
      mySoapPort.Binding = myXmlQualifiedName
      Dim mySoapAddressBinding As New SoapAddressBinding()
      mySoapAddressBinding.Location = "http://localhost/" & _
         "ServiceDescriptionBaseCollection_VB/AddSubtractService.VB.asmx"
      mySoapPort.Extensions.Add(mySoapAddressBinding)

      ' Build a new Port for HTTP-GET.
      Dim myXmlQualifiedName2 As _
         New XmlQualifiedName("s0:MathServiceHttpGet")
      Dim myHttpGetPort As New Port()
      myHttpGetPort.Name = "MathServiceHttpGet"
      myHttpGetPort.Binding = myXmlQualifiedName2
      Dim myHttpAddressBinding As New HttpAddressBinding()
      myHttpAddressBinding.Location = "http://localhost/" & _
         "ServiceDescriptionBaseCollection_VB/AddSubtractService.VB.asmx"
      myHttpGetPort.Extensions.Add(myHttpAddressBinding)

      ' Add the ports to the Service.
      myService.Ports.Add(myHttpGetPort)
      myService.Ports.Add(mySoapPort)

      ' Add the Service to the ServiceCollection.
      myServiceDescription.Services.Add(myService)
   Else
      If myType.Equals( _
         GetType(System.Web.Services.Description.BindingCollection)) Then

         ' Remove the Binding in the BindingCollection at index 0.
         CType(myServiceCollection, BindingCollection).Remove( _
            myServiceDescription.Bindings(0))

         ' Build a new Binding.
         Dim myBinding As New Binding()
         myBinding.Name = "MathServiceSoap"
         Dim myXmlQualifiedName As _
            New XmlQualifiedName("s0:MathServiceSoap")
         myBinding.Type = myXmlQualifiedName
         Dim mySoapBinding As New SoapBinding()
         mySoapBinding.Transport = "http://schemas.xmlsoap.org/soap/http"
         mySoapBinding.Style = SoapBindingStyle.Document

         ' Create the operations for the binding.
         Dim addOperationBinding As OperationBinding = _
            CreateOperationBinding("Add", _
            myServiceDescription.TargetNamespace)
         Dim subtractOperationBinding As OperationBinding = _
            CreateOperationBinding("Subtract", _
            myServiceDescription.TargetNamespace)

         ' Add the operations to the Binding.
         myBinding.Operations.Add(subtractOperationBinding)
         myBinding.Operations.Add(addOperationBinding)
         myBinding.Extensions.Add(mySoapBinding)

         ' Add the Binding to the Bindings collection.
         myServiceDescription.Bindings.Add(myBinding)
      Else
         If myType.Equals( _ 
            GetType(System.Web.Services.Description.PortTypeCollection)) Then

            ' Remove the PortType at index 0.
            CType(myServiceCollection, PortTypeCollection).Remove( _ 
               myServiceDescription.PortTypes(0))

            ' Build a new PortType.
            Dim myPortType As New PortType()
            myPortType.Name = "MathServiceSoap"

            ' Build an AddOperation for the PortType.
            Dim myAddOperation As New Operation()
            myAddOperation.Name = "Add"

            ' Build the Input and Output messages for the Operations.
            Dim myOperationInputMessage1 As New OperationInput()
            Dim myXmlQualifiedName1 As New XmlQualifiedName("s0:AddSoapIn")
            myOperationInputMessage1.Message = myXmlQualifiedName1
            
            Dim myOperationOutputMessage1 As New OperationOutput()
            Dim myXmlQualifiedName2 As New XmlQualifiedName("s0:AddSoapOut")
            myOperationOutputMessage1.Message = myXmlQualifiedName2

            ' Add the messages to the operations.
            myAddOperation.Messages.Add(myOperationInputMessage1)
            myAddOperation.Messages.Add(myOperationOutputMessage1)

            ' Build an Add Operation for the PortType.
            Dim mySubtractOperation As New Operation()
            mySubtractOperation.Name = "Subtract"

            ' Build the Input and Output messages for the operations.
            Dim myOperationInputMessage2 As New OperationInput()
            Dim myXmlQualifiedName3 As _
               New XmlQualifiedName("s0:SubtractSoapIn")
            myOperationInputMessage2.Message = myXmlQualifiedName3
            Dim myOperationOutputMessage2 As New OperationOutput()
            Dim myXmlQualifiedName4 As _
               New XmlQualifiedName("s0:SubtractSoapOut")
            myOperationOutputMessage2.Message = myXmlQualifiedName4

            ' Add the messages to the operations.
            mySubtractOperation.Messages.Add(myOperationInputMessage2)
            mySubtractOperation.Messages.Add(myOperationOutputMessage2)

            ' Add the operations to the PortType.
            myPortType.Operations.Add(myAddOperation)
            myPortType.Operations.Add(mySubtractOperation)

            ' Add the PortType to the collection.
            myServiceDescription.PortTypes.Add(myPortType)
         End If
      End If
   End If
End Sub

屬性

名稱 Description
Capacity

取得或設定 CollectionBase 可以包含的項目數目。

(繼承來源 CollectionBase)
Count

取得該實例中包含 CollectionBase 的元素數量。 此屬性無法覆寫。

(繼承來源 CollectionBase)
InnerList

取得包含實ArrayList例中元素清單的 。CollectionBase

(繼承來源 CollectionBase)
List

取得包含實IList例中元素清單的 。CollectionBase

(繼承來源 CollectionBase)
Table

獲得一個介面,實現鍵與值 ServiceDescriptionBaseCollection在 中的關聯。

方法

名稱 Description
Clear()

移除實例中 CollectionBase 的所有物件。 此方法無法被覆蓋。

(繼承來源 CollectionBase)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetEnumerator()

回傳一個枚舉器,會遍歷該 CollectionBase 實例。

(繼承來源 CollectionBase)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetKey(Object)

回傳與引用傳遞值相關的鍵名稱。

GetType()

取得目前實例的 Type。

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
OnClear()

清除實例內容 ServiceDescriptionBaseCollection 。

OnClearComplete()

清除實例內容 CollectionBase 後,執行額外的自訂程序。

(繼承來源 CollectionBase)
OnInsert(Int32, Object)

在插入新元素前 CollectionBase ,執行額外的自訂程序。

(繼承來源 CollectionBase)
OnInsertComplete(Int32, Object)

在插入新元素後執行額外的自訂程序。ServiceDescriptionBaseCollection

OnRemove(Int32, Object)

從 中移除一個元素。ServiceDescriptionBaseCollection

OnRemoveComplete(Int32, Object)

移除實 CollectionBase 例元素後,執行額外的自訂程序。

(繼承來源 CollectionBase)
OnSet(Int32, Object, Object)

在 中替換一個值為另一個 ServiceDescriptionBaseCollection。

OnSetComplete(Int32, Object, Object)

在實例設定值 CollectionBase 後,執行額外的自訂程序。

(繼承來源 CollectionBase)
OnValidate(Object)

在驗證值時執行額外的自訂流程。

(繼承來源 CollectionBase)
RemoveAt(Int32)

移除實例指定索引 CollectionBase 的元素。 此方法無法被覆蓋。

(繼承來源 CollectionBase)
SetParent(Object, Object)

設定該實例的 ServiceDescriptionBaseCollection 父物件。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

明確介面實作

名稱 Description
ICollection.CopyTo(Array, Int32)

從目標陣列的指定索引開始,將整個 CollectionBase 複製到相容的一維 Array。

(繼承來源 CollectionBase)
ICollection.IsSynchronized

取得值,指出是否同步存取 CollectionBase (線程安全)。

(繼承來源 CollectionBase)
ICollection.SyncRoot

取得一個物件,可用來同步存取 CollectionBase。

(繼承來源 CollectionBase)
IList.Add(Object)

將物件加入至 CollectionBase的結尾。

(繼承來源 CollectionBase)
IList.Contains(Object)

判斷是否 CollectionBase 包含特定元素。

(繼承來源 CollectionBase)
IList.IndexOf(Object)

搜尋指定的 Object,並傳回整個 CollectionBase內第一個出現專案的以零起始的索引。

(繼承來源 CollectionBase)
IList.Insert(Int32, Object)

將專案插入指定索引處的 CollectionBase。

(繼承來源 CollectionBase)
IList.IsFixedSize

取得值,指出 CollectionBase 是否有固定大小。

(繼承來源 CollectionBase)
IList.IsReadOnly

取得值,指出 CollectionBase 是否為唯讀。

(繼承來源 CollectionBase)
IList.Item[Int32]

取得或設定位於指定索引處的專案。

(繼承來源 CollectionBase)
IList.Remove(Object)

從 CollectionBase移除第一個出現的特定物件。

(繼承來源 CollectionBase)

擴充方法

名稱 Description
AsParallel(IEnumerable)

啟用查詢的平行處理。

AsQueryable(IEnumerable)

將 IEnumerable 轉換成 IQueryable。

Cast<TResult>(IEnumerable)

將 IEnumerable 的項目轉換成指定的型別。

OfType<TResult>(IEnumerable)

根據指定的型別篩選 IEnumerable 的專案。

適用於