için WCF üzerinden bir web hizmeti oluşturduk gerek yoktur. Sonra bir .NET 2.0 uygulaması ile kullanılabilir hale getirmek için bir web hizmeti olarak ortaya koydu. DataMontract'la, açığa çıkan OperationContract tarafından kullanılabilecek bazı DataContract dosyaları oluşturdum.Neden Bir Web Servisi Datamember en Belirtilen Özellik int ve Veriler için ayarlanmış olması ancak dize
ben DataClass oluşturmaya çalıştığınızda her DataContract nitelik şimdi her üye için bir ortak "Belirtilen" özelliğini sahip web hizmetinde geçirilecek dikkat edin. Örneğin
:
[DataContract]
public class Sales
{
[DataMember]
public int InvoiceNo;
...
}
Ben web hizmeti istemci Satış örneğini oluşturmak
. InvoiceNo ve InvoiceNoSpecified adlı özelliği alıyorum.Şimdi burada benim sorum var, öznitelik tür dizgisi olduğunda, karşılık gelen "Belirtilen" özniteliğini true olarak ayarlamam gerekmiyor, ancak öznitelik türü int veya DateTime olduğunda, "Belirtilen" özniteliğine karşılık gelen, web hizmeti ana bilgisayarında değer null olur. Belirtilen özniteliği belirlemekten kaçınmanın bir yolu var mı? Çünkü kodumda bir çok yerde web servis işlevlerini çağırmam gerekiyor. Hepsini takip etmek gerçekten zor olurdu.
Bu sefer için DefaultValueAttribute kullanmaya çalıştı. Varsayılan değeri kullandığımda, istemcide tarih parametresinin değerini ayarlansam bile olur.Artık dateSpecified = true set vermedi beri tarih değeri her zaman varsayılan değerdir. istemcide // kod prm.DepositDate = dtp_Deposit.Value.Date; hizmet de // kodu [DefaultValue (typeof (DateTime), "1900/01/01")] halka DEPOSITDATE; – Nap
Teşekkürler adamım. Ben python soaplib hizmet ve .net müşterilerle aynı problem vardı. Hep true Belirtilen ayarlamak zorunda kaldı. Burada Python düzeltmek için nasıl bir örnektir: @rpc (soap_types.Int (min_occurs = 1), _returns = soap_types.String) –
Elalfer