2012-06-12 20 views
6

Tôi có một dự án MVC trong .Net 4 với dịch vụ WCF với BasicHttpBinding.thuộc tính int là 0 khi tiêu thụ WCF trong .Net 2

Khi tiêu thụ dịch vụ này trong Net 2 các giá trị mà đến nếu tài sản là int là 0.

nếu nó là một chuỗi, hơn nó đi tốt.

tạo một dự án mới trong .Net 4 tiêu thụ cùng một dịch vụ và sử dụng triển khai chính xác (như .Net 2) ==> giá trị int là chính xác.

TẠI SAO?

Cảm ơn!

Trả lời

6

Tôi đặt cược bạn có một hợp đồng dữ liệu đó có thực tế int tài sản:

public int YourProperty ...... 

cũng như một YourPropertySpecified tài sản sinh bên cạnh đó:

public bool YourPropertySpecified ...... 

Từ một int không thể được null, WCF không thể phân biệt liệu bạn có xác định được giá trị hay không - bạn cần phải nói nó.

Vì vậy, nếu bạn sử dụng một tài sản int và thiết lập giá trị cho nó - bạn cũng cần phải thiết lập kèm theo YourPropertySpecified tài sản của mình để đúng:

yourData.YourProperty = 42; 
yourData.YourPropertySpecified = true; 

Với bước thêm này, int giá trị nên đến máy chủ chỉ phạt

+0

Kính gửi marc_s i appriciate bạn trả lời! mô hình của tôi chỉ chứa int dữ liệu của thành viên và tôi không có thuộc tính bool xác định nếu tôi có một giá trị cho nó. tôi hiểu bạn đúng không nếu có, nó không giải quyết được vấn đề của tôi. – Shlo

+0

@Shlo: lớp dữ liệu trông như thế nào được tạo khi bạn thêm tham chiếu dịch vụ vào ứng dụng khách WCF của bạn? Nó không phải là hợp đồng dữ liệu mà bạn đã viết mà bạn cần xem xét - bạn cần xem xét lớp dữ liệu được tạo tự động trên máy khách sử dụng dịch vụ WCF của bạn –

+1

BẠN ĐANG PHẢI !!! CẢM ƠN BẠN! Tôi không nhìn vào lớp được tạo sau khi thêm tham chiếu dịch vụ ... – Shlo

Các vấn đề liên quan