PortType-Klasse
Stellt eine benannte Gruppe von abstrakten Operationen und die entsprechenden abstrakten Meldung dar. Diese Klasse kann nicht geerbt werden.
Namespace: System.Web.Services.Description
Assembly: System.Web.Services (in system.web.services.dll)
Syntax
'Declaration
Public NotInheritable Class PortType
Inherits NamedItem
'Usage
Dim instance As PortType
public sealed class PortType : NamedItem
public ref class PortType sealed : public NamedItem
public final class PortType extends NamedItem
public final class PortType extends NamedItem
Hinweise
Die PortType-Klasse entspricht dem WSDL-portType-Element (Web Services Description Language), das vom definitions-Stammelement eingeschlossen wird. Weitere Informationen über WSDL finden Sie in der Spezifikation unter http://www.w3.org/TR/wsdl/.
Beispiel
Imports System
Imports System.Web.Services.Description
Imports System.Xml
Imports Microsoft.VisualBasic
Class MyPortTypeClass
Public Shared Sub Main()
Try
Dim myPortTypeCollection As PortTypeCollection
Dim myServiceDescription As ServiceDescription = _
ServiceDescription.Read("MathService_vb.wsdl")
myPortTypeCollection = myServiceDescription.PortTypes
Dim noOfPortTypes As Integer = _
myServiceDescription.PortTypes.Count
Console.WriteLine(ControlChars.Newline & _
"Total number of PortTypes : " & noOfPortTypes.ToString())
Dim myPortType As PortType = _
myPortTypeCollection("MathServiceSoap")
myPortTypeCollection.Remove(myPortType)
' Create a new PortType.
Dim myNewPortType As New PortType()
myNewPortType.Name = "MathServiceSoap"
Dim myOperationCollection As OperationCollection = _
myServiceDescription.PortTypes(0).Operations
Dim i As Integer
For i = 0 To myOperationCollection.Count - 1
Dim inputmsg As String = _
myOperationCollection(i).Name & "SoapIn"
Dim outputmsg As String = _
myOperationCollection(i).Name & "SoapOut"
Console.WriteLine("Operation = " & myOperationCollection(i).Name)
myNewPortType.Operations.Add( _
CreateOperation(myOperationCollection(i).Name, inputmsg, _
outputmsg, myServiceDescription.TargetNamespace))
Next i
' Add the PortType to the collection.
myPortTypeCollection.Add(myNewPortType)
noOfPortTypes = myServiceDescription.PortTypes.Count
Console.WriteLine(ControlChars.Newline & _
"Total Number of PortTypes : " & noOfPortTypes.ToString())
myServiceDescription.Write("MathService_New.wsdl")
Catch e As Exception
Console.WriteLine("Exception: " & e.Message)
End Try
End Sub 'Main
Public Shared Function CreateOperation(operationName As String, _
inputMessage As String, outputMessage As String, _
targetNamespace As String) As Operation
Dim myOperation As New Operation()
myOperation.Name = operationName
Dim input As OperationMessage = _
CType(New OperationInput(), OperationMessage)
input.Message = New XmlQualifiedName(inputMessage, targetNamespace)
Dim output As OperationMessage = _
CType(New OperationOutput(), OperationMessage)
output.Message = New XmlQualifiedName(outputMessage, targetNamespace)
myOperation.Messages.Add(input)
myOperation.Messages.Add(output)
Return myOperation
End Function 'CreateOperation
End Class 'MyPortTypeClass
using System;
using System.Web.Services.Description;
using System.Xml;
class MyPortTypeClass
{
public static void Main()
{
try
{
PortTypeCollection myPortTypeCollection;
ServiceDescription myServiceDescription =
ServiceDescription.Read("MathService_CS.wsdl");
myPortTypeCollection = myServiceDescription.PortTypes;
int noOfPortTypes = myServiceDescription.PortTypes.Count;
Console.WriteLine("\nTotal number of PortTypes : "
+ noOfPortTypes);
PortType myPortType = myPortTypeCollection["MathServiceSoap"];
myPortTypeCollection.Remove(myPortType);
// Create a new PortType.
PortType myNewPortType = new PortType();
myNewPortType.Name = "MathServiceSoap";
OperationCollection myOperationCollection =
myServiceDescription.PortTypes[0].Operations;
for(int i=0;i<myOperationCollection.Count;i++)
{
string inputmsg = myOperationCollection[i].Name + "SoapIn";
string outputmsg = myOperationCollection[i].Name + "SoapOut";
Console.WriteLine("Operation = " + myOperationCollection[i].Name);
myNewPortType.Operations.Add(
CreateOperation(myOperationCollection[i].Name, inputmsg,
outputmsg,myServiceDescription.TargetNamespace));
}
// Add the PortType to the collection.
myPortTypeCollection.Add(myNewPortType);
noOfPortTypes = myServiceDescription.PortTypes.Count;
Console.WriteLine("\nTotal Number of PortTypes : "
+ noOfPortTypes);
myServiceDescription.Write("MathService_New.wsdl");
}
catch(Exception e)
{
Console.WriteLine("Exception: " + e.Message);
}
}
public static Operation CreateOperation(string operationName,
string inputMessage, string outputMessage, string targetNamespace)
{
Operation myOperation = new Operation();
myOperation.Name = operationName;
OperationMessage input = (OperationMessage) new OperationInput();
input.Message = new XmlQualifiedName(inputMessage, targetNamespace);
OperationMessage output = (OperationMessage) new OperationOutput();
output.Message = new XmlQualifiedName(outputMessage, targetNamespace);
myOperation.Messages.Add(input);
myOperation.Messages.Add(output);
return myOperation;
}
}
#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;
Operation^ CreateOperation( String^ operationName, String^ inputMessage, String^ outputMessage, String^ targetNamespace )
{
Operation^ myOperation = gcnew Operation;
myOperation->Name = operationName;
OperationMessage^ input = dynamic_cast<OperationMessage^>(gcnew OperationInput);
input->Message = gcnew XmlQualifiedName( inputMessage,targetNamespace );
OperationMessage^ output = dynamic_cast<OperationMessage^>(gcnew OperationOutput);
output->Message = gcnew XmlQualifiedName( outputMessage,targetNamespace );
myOperation->Messages->Add( input );
myOperation->Messages->Add( output );
return myOperation;
}
int main()
{
try
{
PortTypeCollection^ myPortTypeCollection;
ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_CS.wsdl" );
myPortTypeCollection = myServiceDescription->PortTypes;
int noOfPortTypes = myServiceDescription->PortTypes->Count;
Console::WriteLine( "\nTotal number of PortTypes : {0}", noOfPortTypes );
PortType^ myPortType = myPortTypeCollection[ "MathServiceSoap" ];
myPortTypeCollection->Remove( myPortType );
// Create a new PortType.
PortType^ myNewPortType = gcnew PortType;
myNewPortType->Name = "MathServiceSoap";
OperationCollection^ myOperationCollection = myServiceDescription->PortTypes[ 0 ]->Operations;
for ( int i = 0; i < myOperationCollection->Count; i++ )
{
String^ inputmsg = String::Concat( myOperationCollection[ i ]->Name, "SoapIn" );
String^ outputmsg = String::Concat( myOperationCollection[ i ]->Name, "SoapOut" );
Console::WriteLine( "Operation = {0}", myOperationCollection[ i ]->Name );
myNewPortType->Operations->Add( CreateOperation( myOperationCollection[ i ]->Name, inputmsg, outputmsg, myServiceDescription->TargetNamespace ) );
}
// Add the PortType to the collection.
myPortTypeCollection->Add( myNewPortType );
noOfPortTypes = myServiceDescription->PortTypes->Count;
Console::WriteLine( "\nTotal Number of PortTypes : {0}", noOfPortTypes );
myServiceDescription->Write( "MathService_New.wsdl" );
}
catch ( Exception^ e )
{
Console::WriteLine( "Exception: {0}", e->Message );
}
}
import System.*;
import System.Web.Services.Description.*;
import System.Xml.*;
class MyPortTypeClass
{
public static void main(String[] args)
{
try {
PortTypeCollection myPortTypeCollection;
ServiceDescription myServiceDescription = ServiceDescription.Read(
"MathService_JSL.wsdl");
myPortTypeCollection = myServiceDescription.get_PortTypes();
int noOfPortTypes = myServiceDescription.get_PortTypes().
get_Count();
Console.WriteLine("\nTotal number of PortTypes : "
+ noOfPortTypes);
PortType myPortType = myPortTypeCollection.get_Item(
"MathServiceSoap");
myPortTypeCollection.Remove(myPortType);
// Create a new PortType.
PortType myNewPortType = new PortType();
myNewPortType.set_Name("MathServiceSoap");
OperationCollection myOperationCollection = myServiceDescription.
get_PortTypes().get_Item(0).get_Operations();
for (int i = 0; i < myOperationCollection.get_Count(); i++) {
String inputmsg = myOperationCollection.get_Item(i).get_Name()
+ "SoapIn";
String outputmsg = myOperationCollection.get_Item(i).get_Name()
+ "SoapOut";
Console.WriteLine("Operation = "
+ myOperationCollection.get_Item(i).get_Name());
myNewPortType.get_Operations().Add(CreateOperation(
myOperationCollection.get_Item(i).get_Name(), inputmsg,
outputmsg, myServiceDescription.get_TargetNamespace()));
}
// Add the PortType to the collection.
myPortTypeCollection.Add(myNewPortType);
noOfPortTypes = myServiceDescription.get_PortTypes().get_Count();
Console.WriteLine("\nTotal Number of PortTypes : "
+ noOfPortTypes);
myServiceDescription.Write("MathService_New.wsdl");
}
catch (System.Exception e) {
Console.WriteLine("Exception: " + e.get_Message());
}
} //main
public static Operation CreateOperation(String operationName,
String inputMessage, String outputMessage, String targetNamespace)
{
Operation myOperation = new Operation();
myOperation.set_Name(operationName);
OperationMessage input = (OperationMessage)new OperationInput();
input.set_Message(new XmlQualifiedName(inputMessage, targetNamespace));
OperationMessage output = (OperationMessage)new OperationOutput();
output.set_Message(new XmlQualifiedName(outputMessage,
targetNamespace));
myOperation.get_Messages().Add(input);
myOperation.get_Messages().Add(output);
return myOperation;
} //CreateOperation
} //MyPortTypeClass
Vererbungshierarchie
System.Object
System.Web.Services.Description.DocumentableItem
System.Web.Services.Description.NamedItem
System.Web.Services.Description.PortType
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0