Tôi đã tạo một dịch vụ web qua WCF. Sau đó, tôi tiếp xúc với nó như một dịch vụ web để làm cho nó có thể sử dụng được với một ứng dụng .NET 2.0. Tôi tạo ra một số DataContract với DataMember có thể được sử dụng bởi các tiếp xúc OperationContract.Tại sao Thuộc tính được Chỉ định của Thuộc tính Dữ liệu Web cần phải được đặt cho int và Dữ liệu nhưng không phải cho Chuỗi
Tôi nhận thấy rằng khi tôi cố gắng tạo DataClass được chuyển trong dịch vụ web mà mỗi thuộc tính DataContract hiện có thuộc tính "Chỉ định" đối tác cho từng thành viên.
Ví dụ:
[DataContract]
public class Sales
{
[DataMember]
public int InvoiceNo;
...
}
Khi tôi tạo ra một thể hiện của bán hàng trong các khách hàng dịch vụ web. Tôi nhận được thuộc tính có tên InvoiceNo và InvoiceNoSpecified. Bây giờ đây là câu hỏi của tôi, khi thuộc tính là loại chuỗi, tôi không cần đặt thuộc tính "Chỉ định" tương ứng thành true, nhưng khi loại thuộc tính là int hoặc DateTime, nếu tôi không đặt tương ứng thuộc tính "Chỉ định" thành true, giá trị trở thành null trong máy chủ dịch vụ web. Có cách nào để tránh đặt thuộc tính được chỉ định không? Vì tôi cần gọi các chức năng dịch vụ web ở nhiều nơi trong mã của tôi. Thật sự rất khó để theo dõi tất cả chúng.
Tôi đã cố gắng sử dụng DefaultValueAttribute cho mục này. Khi tôi sử dụng giá trị mặc định, điều xảy ra là ngay cả khi tôi đặt giá trị của thông số ngày trong ứng dụng khách.Vì tôi không đặt dateSpecified = true nữa, giá trị ngày luôn là giá trị mặc định. // mã tại khách hàng prm.DepositDate = dtp_Deposit.Value.Date; // mã tại dịch vụ [DefaultValue (loạiof (Ngày giờ), "1900/01/01")] Tiền gửi công cộngNgày; – Nap
Cảm ơn người đàn ông. Tôi đã có cùng một vấn đề với các dịch vụ python soaplib và .net khách hàng. Tôi luôn phải đặt Được chỉ định thành true. Dưới đây là ví dụ về cách sửa lỗi bằng Python: @rpc (soap_types.Int (min_occurs = 1), _returns = soap_types.String) –
Elalfer