2009-10-19 8 views
6

Ho un cliente che sta che impone che i miei required elementi di stringa hanno nillable="false", attualmente tutte le stringhe nel WSDL uscito volontà nillable="true", IE:WCF: elemento stringa nillable = "false"

<xs:element name="username" nillable="true" type="xs:string" /> 

COME POSSO cambia il nillable="false"?!? Prenderò qualche suggerimento su come farlo? Sono la prima persona che si è imbattuta in questo?

+0

Correlati: http://stackoverflow.com/questions/9039850/wcf-wsdl-nillable-attributes/21266714#21266714. – Steven

risposta

1

Come viene definito questo elemento nel contratto dati?

Se non è già stato fatto, prova ad aggiungere una clausola IsRequired=true all'attributo membro di dati:

[DataContract] 
class YourDataStructure 
{ 
    ...... 

    [DataMember(IsRequired=True)] 
    string username; 

    ..... 
} 

Oltre a questo, io non sono a conoscenza di alcun modo per influenzare il XSD in fase di rendering dai dati WCF contratto, a meno di scrivere la tua estensione WsdlExporter (che è totalmente possibile - sembra un po 'eccessivo qui).

+0

Ciao Marc. Grazie per il suggerimento. Ho provato IsRequired = True, che rimuove solo minOccurs = "0". – stevenrosscampbell

+0

@Steven: Avevo paura di quello :-( –

+0

Ciao Marc, Buone notizie, avevo già il WsdlExporter nel mio servizio wcf per appiattire il wsdl, quindi in realtà era abbastanza semplice implementarlo nell'estensione di WsdlExporter. Grazie per il suggerimento, senza di esso non penso che sarei andato in quella strada (Nota: ho usato http://blogs.msdn.com/stan_kitsis/archive/2005/08/06/448572.aspx per Camminando su XmlSchema, e quando è stato trovato l'elemento appropriato, sono riuscito a passare el.IsNillable = false e ha funzionato Grazie ancora Steven – stevenrosscampbell

Problemi correlati