2012-01-31 26 views
20

Tôi đang làm việc với API sử dụng json. Tôi có một số lớp mà tôi đã tạo để mô hình hóa API. Để làm cho cuộc sống trở nên dễ dàng, các mô hình của tôi sử dụng các thuộc tính công khai, lần lượt được sử dụng bởi Json.Net khi deserializing các json vào các đối tượng.Có cách nào để sử dụng Json.Net deserialization với các lớp học không thay đổi?

Tôi muốn làm cho đối tượng của mình không thay đổi được, nhưng tôi đang gặp vấn đề bởi vì nếu tôi chỉ đọc thuộc tính của mình, tôi sẽ phá vỡ quá trình deserialization. Có cách nào để tôi có đối tượng bất biến, và sử dụng deserialization?

Trả lời

14

Tôi nghĩ bạn có thể sử dụng JsonConstructorAttribute. Xem this question để biết ví dụ.

+0

Tôi nghĩ bạn có thể đã quên dán liên kết :) – GregB

+0

@GregB, xin lỗi, đã đăng ngay bây giờ. –

+1

Nếu chỉ có một hàm tạo, 'JsonConstructorAttribute' là không cần thiết. –

8

Cung cấp hàm tạo với các tham số tương ứng với thuộc tính. Vỏ của các chữ cái đầu tiên của các tham số và thuộc tính không cần phải khớp.

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