Tôi đang cố gắng sắp xếp một đối tượng vào XML có một số thuộc tính, một số trong đó là chỉ đọc.Nối tiếp dữ liệu thành viên riêng tư
public Guid Id { get; private set; }
Tôi đã đánh dấu lớp [Serializable] và tôi đã triển khai giao diện ISerializable.
Dưới đây là mã tôi đang sử dụng để sắp xếp hàng loạt đối tượng của mình.
public void SaveMyObject(MyObject obj)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
TextWriter tw = new StreamWriter(_location);
serializer.Serialize(tw, obj);
tw.Close();
}
Thật không may nó rơi trên dòng đầu tiên với thông báo này.
InvalidOperationException unhandled: Không thể tạo lớp tạm thời (kết quả = 1). lỗi CS0200: Không thể chỉ định thuộc tính hoặc chỉ mục 'MyObject.Id' - chỉ đọc được
Nếu tôi đặt thuộc tính Id thành công khai, hoạt động tốt. Ai đó có thể cho tôi biết nếu tôi đang làm điều gì đó, hoặc ít nhất là nếu nó có thể xảy ra?
+1, cảm ơn lời khuyên của tôi về câu trả lời của tôi. –
Tôi đã thay đổi mã của mình để sử dụng DataContractSerializer và tôi nhận thấy rằng nó vẫn đang chạy phương thức GetObjectData. Tôi có nghĩ rằng tôi có thể đặt các thuộc tính vào các thuộc tính của tôi để tuần tự hóa chúng hay tôi có thể triển khai giao diện ISerializable không? –
Nếu bạn thực hiện ISerializable (hoặc là IXmlSeializable?), Bạn đang làm tất cả các công việc cho mình ... –