ServiceDescription.CanRead(XmlReader) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
XmlReader가 구문 분석할 수 있는 올바른 WSDL(웹 서비스 설명 언어) 파일을 나타내는지 여부를 표시하는 값을 가져옵니다.
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
매개 변수
반환
XmlSerializer에서 XmlReader가 위치한 노드를 인식할 수 있으면 true
이고, 그렇지 않으면 false
입니다.
예제
// 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