Condividi tramite


Descrivere lo schema della documentazione di PortType WSDL con WCF LOB Adapter SDK

Il linguaggio WSDL generato da WCF LOB Adapter SDK contiene informazioni descrittive aggiuntive per ogni portType. Lo schema per queste informazioni aggiuntive è descritto in questo argomento.

Xml Schema della documentazione

La documentazione dell'operazione viene implementata usando l'annotazione di portType per aggiungere un nodo che rappresenta la documentazione dell'adattatore per l'operazione. Questo nodo contiene sottonodi che descrivono ulteriormente l'operazione e i parametri. Questo schema è definito come segue.

<?xml version="1.0" encoding="utf-8"?>  
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">  
  <xs:element name="adapterOperationDocumentation">  
    <xs:complexType>  
      <xs:sequence>  
        <xs:element name="summary" type="xs:string" />  
        <xs:element maxOccurs="unbounded" name="param">  
          <xs:complexType>  
            <xs:simpleContent>  
              <xs:extension base="xs:string">  
                <xs:attribute name="name" type="xs:string" use="required" />  
              </xs:extension>  
            </xs:simpleContent>  
          </xs:complexType>  
        </xs:element>  
        <xs:element name="returns" type="xs:string" />  
      </xs:sequence>  
    </xs:complexType>  
  </xs:element>  
</xs:schema>  

Quando viene generato WSDL per una determinata operazione, lo schema precedente viene usato per fornire informazioni descrittive aggiuntive in formato leggibile. Ad esempio, vengono restituite le informazioni portType seguenti per l'operazione EchoString dell'adapter Echo.

<wsdl:portType name="EchoService">  
  <wsdl:operation name="EchoString">  
    <wsdl:documentation>  
      <doc:adapterOperationDocumentation>  
        <doc:summary>String EchoString( string aName)\</doc:summary>  
        <doc:param name="aName">This string will be echoed back to the user.\</doc:param>  
        <doc:returns>String value containing the value of aName \</doc:returns>  
      </doc:adapterOperationDocumentation>  
    </wsdl:documentation>  
    <wsdl:input wsaw:Action="Echo/EchoString" message="ns2:EchoService_EchoString_InputMessage" />  
    <wsdl:output wsaw:Action="Echo/EchoString/response" message="ns2:EchoService_EchoString_OutputMessage" />  
  </wsdl:operation>  
</wsdl:portType>  

I valori per gli elementi della documentazione vengono ottenuti da Microsoft.ServiceModel.Channels.Common.ParameterizedOperationMetadata per l'operazione. L'esempio precedente è stato generato come risultato dell'esempio seguente.

ParameterizedOperationMetadata om = new ParameterizedOperationMetadata(operationId, operationId);  
// set this if you want this operation to belong to this interface name  
// in the generated proxy, the interface name will be EchoService  
// and the client implementation name will be EchoServiceClient.  
om.OperationGroup = "EchoService";  
// set the operation namespace to be same as service namespace  
om.OperationNamespace = EchoAdapter.SERVICENAMESPACE;              
switch (operationId)  
{  
   case "Echo/EchoString":  
       om.DisplayName = "EchoString";  
       om.OriginalName = "targetSystemEchoString";  
       om.Description = "String EchoString( string aName)";  
       OperationParameter parm1 = new OperationParameter("aName", OperationParameterDirection.In, QualifiedType.StringType, false);  
       parm1.Description = "This string will be echoed back to the user.";  
       OperationResult result = new OperationResult(new SimpleQualifiedType(XmlTypeCode.String), false);  
       result.Description = "String value containing the value of aName";  
       om.Parameters.Add(parm1);  
       om.OperationResult = result;  
       return om;   

Vedere anche

Procedure consigliate per lo sviluppo con WCF LOB Adapter SDK