Tôi đang deserializing một đối tượng sử dụng Json.NET
có chứa một trường tư nhân của loại Guid và một tài sản công cho lĩnh vực đó. Khi giá trị cho Guid
của tôi là null trong json của tôi, tôi muốn gán Guid.Empty
cho trường của tôi.Json.net deserialization null guid case
public class MyClass
{
private Guid property;
public Guid Property
{
get { return property; }
set
{
if (value == null)
{
property = Guid.Empty;
}
else
{
property = value;
}
}
}
}
Nhưng deserializer
muốn truy cập các lĩnh vực tư nhân, vì tôi nhận được lỗi này khi tôi cố gắng deserialize:
Lỗi chuyển đổi giá trị {rỗng} để gõ 'System.Guid'. Đường dẫn '[0] .property', dòng 6, vị trí 26.
Làm cách nào để bỏ qua trường riêng tư và sử dụng tài sản công cộng?
Cảm ơn bạn ! Một câu hỏi về Null để chuyển đổi mặc định. Tôi có phải tự thêm thuộc tính JsonConverter vào mỗi trường/thuộc tính trong lớp của tôi hay bằng cách nào đó tôi có thể thêm nó vào tất cả các thuộc tính trong lớp? – Adrian
Bạn có thể thêm nó vào mỗi thuộc tính hoặc đăng ký nó để sử dụng trên toàn cầu trong tất cả các lớp. Xem [Đăng ký một JsonConverter tùy chỉnh trong Json.Net] (http://stackoverflow.com/questions/19510532/registering-a-custom-jsonconverter-in-json-net). – dbc