ServiceDescription.CanRead(XmlReader) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient une valeur qui indique si XmlReader représente un fichier WSDL (Web Services Description Language) valide pouvant être analysé.
public:
static bool CanRead(System::Xml::XmlReader ^ reader);
public static bool CanRead (System.Xml.XmlReader reader);
static member CanRead : System.Xml.XmlReader -> bool
Public Shared Function CanRead (reader As XmlReader) As Boolean
Paramètres
Retours
true
si XmlSerializer peut reconnaître le nœud sur lequel XmlReader est positionné ; sinon false
.
Exemples
// 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." );
}
}
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;
}
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
' 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