Tôi muốn XML được tạo bởi XmlSerializer để loại trừ các thuộc tính nếu chúng có giá trị mặc định. Điều này có thể với XmlSerializer hoặc tôi sẽ phải nhìn vào IXmlSerializable?Làm cách nào tôi có thể bỏ qua các thuộc tính theo giá trị của chúng bằng XmlSerializer
Ví dụ, tôi có thể có những lớp sau:
public class PositionedObject
{
public float X
{ get; set; }
public float Y
{ get; set;}
}
Tôi muốn nói với XmlSerializer rằng khi nó serializes một thể hiện của PositionedObject, để không bao gồm X nếu giá trị là 0 (và cùng với Y nếu nó là 0).
Câu trả lời này không đủ. Tôi không thấy làm thế nào serializer sẽ biết về một phương pháp như vậy. Và bên cạnh đó, điều này không thể mở rộng được. – Amy
@Inuyasha, bạn đã thử chưa? Tôi biết nó hoạt động, tôi sử dụng giải pháp này nhiều lần. Nó không phải là tài liệu, nhưng nếu bạn nhìn vào mã serializer XML, bạn sẽ thấy rằng nó gọi phương thức này nếu nó tồn tại (cách khác, bạn cũng có thể tạo một thuộc tính chỉ đọc có tên là 'XSpecified', nó có cùng tác dụng). Và dù sao, bạn có biết một phương pháp có khả năng mở rộng hơn không? –
Inuyasha - bạn có thực sự thử nó không? Dựa trên câu trả lời này tôi đã có thể Google một vài điều và tìm thấy một số bài báo tuyên bố rằng điều này sẽ làm việc. Tôi đang trong quá trình thực hiện ngay bây giờ. Dưới đây là một số thông tin khác: http://horacegoescoding.blogspot.com/2009/04/using-shouldserialize-for-conditional.html –