Me pregunto cómo puedo especificar un parámetro de un OperationContract método en WCF como necesaria para que el xsd generado contiene minOccurs=»1″ en lugar de » minOccurs=»0″.

Ejemplo:

[ServiceContract(Namespace = "http://myUrl.com")]  
public interface IMyWebService  
{  
   [OperationContract]  
   string DoSomething(string param1, string param2, string param3);  
}

genera este xsd:

<xs:element name="DoSomething">  
  <xs:complexType>  
    <xs:sequence>  
      <xs:element minOccurs="0" name="param1" nillable="true" type="xs:string" />  
      <xs:element minOccurs="0" name="param2" nillable="true" type="xs:string" />  
      <xs:element minOccurs="0" name="param3" nillable="true" type="xs:string" />  
    </xs:sequence>  
  </xs:complexType>  

Pero quiero definir minOccurs=»1″ en el código sin la necesidad de corregir manualmente en el archivo xsd.

Consulte here creo que es la mejor solución.
stackoverflow.com/questions/1438623/…

OriginalEl autor Jan-Patrick Ahnen | 2010-08-04

2 Comentarios

  1. 8

    Usted puede ser que necesite para ajustar sus parámetros en una clase, entonces usted puede utilizar el DataMember atributo y especificar IsRequired=true:

    [ServiceContract(Namespace = "http://myUrl.com")]  
    public interface IMyWebService  
    {  
       [OperationContract]  
       string DoSomething(RequestMessage request);  
    }
    
    [DataContract]
    public class RequestMessage
    {
       [DataMember(IsRequired = true)]
       public string param1 { get; set; }
    
       [DataMember(IsRequired = true)]
       public string param3 { get; set; }
    
       [DataMember(IsRequired = true)]
       public string param3 { get; set; }
    }
    Esta no es la respuesta que yo esperaba leer, pero gracias a aclarar cómo se debe hacer.
    Esto no sólo hacer que la ‘petición’ argumento en el OperationContract marcado como minOccurs=»0″ en el xsd generado?
    Veo que usted nunca recibió una respuesta aquí. Un punto fuerte. Creo que estás en lo correcto. La ejecución de un OperationContract parámetro requisito en WCF (según he leído) no puede ser hecho en «aceptar valores null’ tipos sin entrar contrato de mensaje. Aquí está un enlace que he encontrado: social.msdn.microsoft.com/Forums/vstudio/en-US/… … creo que tienes razón en tu punto.

    OriginalEl autor Graham Clark

Dejar respuesta

Please enter your comment!
Please enter your name here