Service 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
設定與 Web 服務相關聯 Port 類別相關執行個體 (Instance) 集的群組。 此類別無法獲得繼承。
public ref class Service sealed : System::Web::Services::Description::DocumentableItem
public ref class Service sealed : System::Web::Services::Description::NamedItem
public sealed class Service : System.Web.Services.Description.DocumentableItem
[System.Web.Services.Configuration.XmlFormatExtensionPoint("Extensions")]
public sealed class Service : System.Web.Services.Description.NamedItem
type Service = class
inherit DocumentableItem
[<System.Web.Services.Configuration.XmlFormatExtensionPoint("Extensions")>]
type Service = class
inherit NamedItem
Public NotInheritable Class Service
Inherits DocumentableItem
Public NotInheritable Class Service
Inherits NamedItem
- 繼承
- 繼承
- 屬性
範例
#using <System.Xml.dll>
#using <System.Web.Services.dll>
#using <System.dll>
using namespace System;
using namespace System::Web::Services::Description;
using namespace System::Xml;
Port^ CreatePort( String^ PortName, String^ BindingName, String^ targetNamespace )
{
Port^ myPort = gcnew Port;
myPort->Name = PortName;
myPort->Binding = gcnew XmlQualifiedName( BindingName,targetNamespace );
// Create a SoapAddress extensibility element to add to the port.
SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding;
mySoapAddressBinding->Location = "http://localhost/ServiceClass/MathService_CS.asmx";
myPort->Extensions->Add( mySoapAddressBinding );
return myPort;
}
int main()
{
try
{
// Read a WSDL document.
ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_CS.wsdl" );
ServiceCollection^ myServiceCollection = myServiceDescription->Services;
int noOfServices = myServiceCollection->Count;
Console::WriteLine( "\nTotal number of services: {0}", noOfServices );
// Gets a reference to the service.
Service^ myOldService = myServiceCollection[ 0 ];
Console::WriteLine( "No. of ports in the service: {0}", myServiceCollection[ 0 ]->Ports->Count );
Console::WriteLine( "These are the ports in the service:" );
for ( int i = 0; i < myOldService->Ports->Count; i++ )
Console::WriteLine( "Port name: {0}", myOldService->Ports[ i ]->Name );
Console::WriteLine( "Service name: {0}", myOldService->Name );
Service^ myService = gcnew Service;
myService->Name = "MathService";
// Add the Ports to the newly created Service.
for ( int i = 0; i < myOldService->Ports->Count; i++ )
{
String^ PortName = myServiceCollection[ 0 ]->Ports[ i ]->Name;
String^ BindingName = myServiceCollection[ 0 ]->Ports[ i ]->Binding->Name;
myService->Ports->Add( CreatePort( PortName, BindingName, myServiceDescription->TargetNamespace ) );
}
Console::WriteLine( "Newly created ports -" );
for ( int i = 0; i < myService->Ports->Count; i++ )
Console::WriteLine( "Port name: {0}", myOldService->Ports[ i ]->Name );
// Add the extensions to the newly created Service.
int noOfExtensions = myOldService->Extensions->Count;
Console::WriteLine( "No. of extensions: {0}", noOfExtensions );
if ( noOfExtensions > 0 )
{
for ( int i = 0; i < myOldService->Ports->Count; i++ )
myService->Extensions->Add( myServiceCollection[ 0 ]->Extensions[ i ] );
}
// Remove the service from the collection.
myServiceCollection->Remove( myOldService );
// Add the newly created service.
myServiceCollection->Add( myService );
myServiceDescription->Write( "MathService_New.wsdl" );
}
catch ( Exception^ e )
{
Console::WriteLine( "Exception: {0}", e->Message );
}
}
using System;
using System.Web.Services.Description;
using System.Xml;
class MyServiceClass
{
public static void Main()
{
try
{
// Read a WSDL document.
ServiceDescription myServiceDescription =
ServiceDescription.Read("MathService_CS.wsdl");
ServiceCollection myServiceCollection =
myServiceDescription.Services;
int noOfServices = myServiceCollection.Count;
Console.WriteLine("\nTotal number of services: " + noOfServices);
// Gets a reference to the service.
Service myOldService = myServiceCollection[0];
Console.WriteLine("No. of ports in the service: "+
myServiceCollection[0].Ports.Count);
Console.WriteLine("These are the ports in the service:");
for(int i = 0 ; i < myOldService.Ports.Count; i++)
Console.WriteLine("Port name: " + myOldService.Ports[i].Name);
Console.WriteLine("Service name: " + myOldService.Name);
Service myService = new Service();
myService.Name = "MathService";
// Add the Ports to the newly created Service.
for(int i = 0; i < myOldService.Ports.Count; i++)
{
string PortName = myServiceCollection[0].Ports[i].Name;
string BindingName = myServiceCollection[0].Ports[i].Binding.Name;
myService.Ports.Add(CreatePort(PortName,BindingName,
myServiceDescription.TargetNamespace));
}
Console.WriteLine("Newly created ports -");
for(int i = 0; i < myService.Ports.Count; i++)
Console.WriteLine("Port name: " + myOldService.Ports[i].Name);
// Add the extensions to the newly created Service.
int noOfExtensions = myOldService.Extensions.Count;
Console.WriteLine("No. of extensions: " + noOfExtensions);
if (noOfExtensions > 0)
{
for(int i = 0; i < myOldService.Ports.Count; i++)
myService.Extensions.Add(myServiceCollection[0].Extensions[i]);
}
// Remove the service from the collection.
myServiceCollection.Remove(myOldService);
// Add the newly created service.
myServiceCollection.Add(myService);
myServiceDescription.Write("MathService_New.wsdl");
}
catch(Exception e)
{
Console.WriteLine("Exception: " + e.Message);
}
}
public static Port CreatePort(string PortName,string BindingName,
string targetNamespace)
{
Port myPort = new Port();
myPort.Name = PortName;
myPort.Binding = new XmlQualifiedName(BindingName,targetNamespace);
// Create a SoapAddress extensibility element to add to the port.
SoapAddressBinding mySoapAddressBinding = new SoapAddressBinding();
mySoapAddressBinding.Location =
"http://localhost/ServiceClass/MathService_CS.asmx";
myPort.Extensions.Add(mySoapAddressBinding);
return myPort;
}
}
Imports System.Web.Services.Description
Imports System.Xml
Class MyServiceClass
Public Shared Sub Main()
Try
' Read a WSDL document.
Dim myServiceDescription As ServiceDescription = _
ServiceDescription.Read("MathService_vb.wsdl")
Dim myServiceCollection As ServiceCollection = _
myServiceDescription.Services
Dim noOfServices As Integer = myServiceCollection.Count
Console.WriteLine(ControlChars.Newline & _
"Total Number of Services :" & noOfServices.ToString())
' Gets a reference to the service.
Dim myOldService As Service = myServiceCollection(0)
Console.WriteLine("No. of Ports in the Service" & _
myServiceCollection(0).Ports.Count.ToString())
Console.WriteLine("These are the ports in the service:")
Dim i As Integer
For i = 0 To myOldService.Ports.Count - 1
Console.WriteLine("Port name: " & myOldService.Ports(i).Name)
Next i
Console.WriteLine("Service name: " & myOldService.Name)
Dim myService As New Service()
myService.Name = "MathService"
' Add the Ports to the newly created Service.
Dim j As Integer
For j = 0 To myOldService.Ports.Count - 1
Dim PortName As String = myServiceCollection(0).Ports(j).Name
Dim BindingName As String = _
myServiceCollection(0).Ports(j).Binding.Name
myService.Ports.Add(CreatePort(PortName, BindingName, _
myServiceDescription.TargetNamespace))
Next j
Console.WriteLine("Newly created ports -")
Dim k As Integer
For k = 0 To myService.Ports.Count - 1
Console.WriteLine("Port name: " & myOldService.Ports(k).Name)
Next k
' Add the extensions to the newly created Service.
Dim noOfExtensions As Integer = myOldService.Extensions.Count
Console.WriteLine("No. of extensions: " & noOfExtensions.ToString())
If noOfExtensions > 0 Then
Dim l As Integer
For l = 0 To myOldService.Ports.Count - 1
myService.Extensions.Add(myServiceCollection(0).Extensions(l))
Next l
End If
' Remove the service from the collection.
myServiceCollection.Remove(myOldService)
' Add the newly created service.
myServiceCollection.Add(myService)
myServiceDescription.Write("MathService_New.wsdl")
Catch e As Exception
Console.WriteLine("Exception:" & e.Message)
End Try
End Sub
Public Shared Function CreatePort(PortName As String, _
BindingName As String, targetNamespace As String) As Port
Dim myPort As New Port()
myPort.Name = PortName
myPort.Binding = New XmlQualifiedName(BindingName, targetNamespace)
' Create a SoapAddress extensibility element to add to the port.
Dim mySoapAddressBinding As New SoapAddressBinding()
mySoapAddressBinding.Location = _
"http://localhost/ServiceClass/MathService.vb.asmx"
myPort.Extensions.Add(mySoapAddressBinding)
Return myPort
End Function 'CreatePort
End Class
備註
類別 Service
會對應至根項目所 <definitions>
括住的 Web 服務描述語言 (WSDL) <service>
專案。 如需 WSDL 的詳細資訊,請參閱 WSDL 規格。
建構函式
Service() |
初始化 Service 類別的新執行個體。 |
屬性
Documentation |
取得或設定 DocumentableItem 的執行個體的文字文件。 (繼承來源 DocumentableItem) |
DocumentationElement |
取得或設定 DocumentableItem 的文件項目。 (繼承來源 DocumentableItem) |
ExtensibleAttributes |
取得或設定型別 XmlAttribute 的陣列,表示符合 Web 服務互通性 (WS-I) Basic Profile 1.1 的 WSDL 屬性擴充。 (繼承來源 DocumentableItem) |
Extensions |
取得與 Service 相關聯擴充性項目的集合。 |
Name |
取得或設定項目的名稱。 |
Name |
取得或設定項目的名稱。 (繼承來源 NamedItem) |
Namespaces |
取得或設定命名空間前置詞和命名空間的字典,用於在建構 ServiceDescription 物件時保留命名空間前置詞和命名空間。 (繼承來源 DocumentableItem) |
Ports | |
ServiceDescription |
取得 ServiceDescription,Service 為其中的成員。 |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |