2009-10-19 22 views
6

benim required dize elemanları nillable="false" sahip olmasını zorunlu kılan bir müşterim var, şu anda wsdl tüm dizeleri, irade nillable="true" IE çıkıp:wcf: string eleman nillable = "false"

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

Nasıl can nillable="false"?!? Bunu nasıl yapacağım konusunda tavsiyem var mı? Buna ilk giren kişi ben miyim?

+0

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

cevap

1

Bu öğe veri sözleşmenizde nasıl tanımlanır?

ettim bile değilse, veri üyesi özelliğe bir IsRequired=true maddesini eklemeyi deneyin: Ben WCF verilerinden işlenmiş XSD etkilemek için herhangi bir şekilde farkında değilim daha

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

    [DataMember(IsRequired=True)] 
    string username; 

    ..... 
} 

Diğer sözleşme, kendi WsdlExporter uzantınızı yazmanızın kısa bir süreliğine (ki bu tamamen mümkündür - sadece burada biraz fazla sıkışık görünüyor).

+0

Merhaba Marc. Önerin için teşekkürler. IsRequired = True'i denedim, bu sadece minOccurs = "0" değerini kaldırır. – stevenrosscampbell

+0

@Steven: Bundan korkuyordum :-( –

+0

Merhaba Marc, İyi haber, WsdlExporter'ı wsdl'yi düzleştirmek için WCF hizmetimde zaten vardı, bu yüzden bunu WsdlExporter uzantısında uygulamak oldukça kolaydı. Öneriniz için teşekkürler, onsuz ben o caddeden aşağı inmiş olabileceğimi düşünmüyorum. (Not: http://blogs.msdn.com/stan_kitsis/archive/2005/08/06/448572.aspx XmlSchema'da yürüyordum ve uygun eleman bulunduğunda, el.IsNillable = false'a gittim ve işe yaradı. Tekrar teşekkürler. Steven – stevenrosscampbell