Freigeben über


ServiceDescription.CanRead-Methode

Ruft einen Wert ab, der angibt, ob ein XmlReader eine gültige WSDL-Datei (Web Services Description Language) darstellt, die analysiert werden kann.

Namespace: System.Web.Services.Description
Assembly: System.Web.Services (in system.web.services.dll)

Syntax

'Declaration
Public Shared Function CanRead ( _
    reader As XmlReader _
) As Boolean
'Usage
Dim reader As XmlReader
Dim returnValue As Boolean

returnValue = ServiceDescription.CanRead(reader)
public static bool CanRead (
    XmlReader reader
)
public:
static bool CanRead (
    XmlReader^ reader
)
public static boolean CanRead (
    XmlReader reader
)
public static function CanRead (
    reader : XmlReader
) : boolean

Parameter

Rückgabewert

true, wenn XmlSerializer den Knoten erkennen kann, auf dem sich XmlReader befindet, andernfalls false.

Beispiel

Shared Sub Main()
   Dim myWsdlFileName As String = "MyWsdl_VB.wsdl"
   Dim myReader As New XmlTextReader(myWsdlFileName)
   If ServiceDescription.CanRead(myReader) Then
      
      Dim myDescription As ServiceDescription = _
         ServiceDescription.Read(myWsdlFileName)

      ' Remove the PortType at index 0 of the collection.
      Dim myPortTypeCollection As PortTypeCollection = _
         myDescription.PortTypes
      myPortTypeCollection.Remove(myDescription.PortTypes(0))

      ' Build a new PortType.
      Dim myPortType As New PortType()
      myPortType.Name = "Service1Soap"
      Dim myOperation As Operation = _
         CreateOperation("Add", "s0:AddSoapIn", "s0:AddSoapOut", "")
      myPortType.Operations.Add(myOperation)

      ' Add a new PortType to the PortType collection of 
      ' the ServiceDescription.
      myDescription.PortTypes.Add(myPortType)
      
      myDescription.Write("MyOutWsdl.wsdl")
      Console.WriteLine("New WSDL file generated successfully.")
   Else
      Console.WriteLine("This file is not a WSDL file.")
   End If
End Sub 'Main
 
' Creates an Operation for a PortType.
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
static void Main()
{
   string myWsdlFileName ="MyWsdl_CS.wsdl";
   XmlTextReader myReader = new XmlTextReader(myWsdlFileName);
   if (ServiceDescription.CanRead(myReader))
   {
      ServiceDescription myDescription = 
         ServiceDescription.Read(myWsdlFileName);

      // Remove the PortType at index 0 of the collection.
      PortTypeCollection myPortTypeCollection = 
         myDescription.PortTypes;
      myPortTypeCollection.Remove(myDescription.PortTypes[0]);
      
      // Build a new PortType.
      PortType myPortType = new PortType();
      myPortType.Name = "Service1Soap";
      Operation myOperation = 
         CreateOperation("Add","s0:AddSoapIn","s0:AddSoapOut","");
      myPortType.Operations.Add(myOperation);

      // Add a new PortType to the PortType collection of 
      // the ServiceDescription.
      myDescription.PortTypes.Add(myPortType);

      myDescription.Write("MyOutWsdl.wsdl");
      Console.WriteLine("New WSDL file generated successfully.");
   }
   else
   {
      Console.WriteLine("This file is not a WSDL file.");
   }

}
// Creates an Operation for a PortType.
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;
}
// Creates an Operation for a PortType.
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()
{
   String^ myWsdlFileName = "MyWsdl_CS.wsdl";
   XmlTextReader^ myReader = gcnew XmlTextReader( myWsdlFileName );
   if ( ServiceDescription::CanRead( myReader ) )
   {
      ServiceDescription^ myDescription = ServiceDescription::Read( myWsdlFileName );

      // Remove the PortType at index 0 of the collection.
      PortTypeCollection^ myPortTypeCollection = myDescription->PortTypes;
      myPortTypeCollection->Remove( myDescription->PortTypes[ 0 ] );

      // Build a new PortType.
      PortType^ myPortType = gcnew PortType;
      myPortType->Name = "Service1Soap";
      Operation^ myOperation = CreateOperation( "Add", "s0:AddSoapIn", "s0:AddSoapOut", "" );
      myPortType->Operations->Add( myOperation );

      // Add a new PortType to the PortType collection of 
      // the ServiceDescription.
      myDescription->PortTypes->Add( myPortType );
      myDescription->Write( "MyOutWsdl.wsdl" );
      Console::WriteLine( "New WSDL file generated successfully." );
   }
   else
   {
      Console::WriteLine( "This file is not a WSDL file." );
   }
}
public static void main(String[] args)
{
    String myWsdlFileName = "MyWsdl_JSL.wsdl";
    XmlTextReader myReader = new XmlTextReader(myWsdlFileName);
    if (ServiceDescription.CanRead(myReader)) {
        ServiceDescription myDescription = 
            ServiceDescription.Read(myWsdlFileName);
        
        // Remove the PortType at index 0 of the collection.
        PortTypeCollection myPortTypeCollection = 
            myDescription.get_PortTypes();
        myPortTypeCollection.Remove(myDescription.get_PortTypes().
            get_Item(0));
        
        // Build a new PortType.
        PortType myPortType = new PortType();
        myPortType.set_Name("Service1Soap");
        Operation myOperation = 
            CreateOperation("Add", "s0:AddSoapIn", "s0:AddSoapOut", "");
        myPortType.get_Operations().Add(myOperation);
        
        // Add a new PortType to the PortType collection of 
        // the ServiceDescription.
        myDescription.get_PortTypes().Add(myPortType);
        myDescription.Write("MyOutWsdl.wsdl");
        Console.WriteLine("New WSDL file generated successfully.");
    }
    else {
        Console.WriteLine("This file is not a WSDL file.");
    }
} //main

// Creates an Operation for a PortType.
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

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

Siehe auch

Referenz

ServiceDescription-Klasse
ServiceDescription-Member
System.Web.Services.Description-Namespace