Tôi đang cố tạo một tài liệu xml theo một định dạng cụ thể. Tôi muốn bỏ qua việc tuần tự hóa thuộc tính tùy thuộc vào giá trị của thuộc tính.Xml Serialization Dynamic Ignore
public class Parent
{
public Parent()
{
myChild = new Child();
myChild2 = new Child() { Value = "Value" };
}
public Child myChild { get; set; }
public Child myChild2 { get; set; }
}
public class Child
{
private bool _set;
public bool Set { get { return _set; } }
private string _value = "default";
[System.Xml.Serialization.XmlText()]
public string Value
{
get { return _value; }
set { _value = value; _set = true; }
}
}
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(Parent));
x.Serialize(Console.Out, new Parent());
Nếu Set là sai, tôi muốn toàn bộ tài sản để không đăng, xml kết quả của tôi nên
<Parent>
<myChild2>default</myChild2>
</Parent>
Thay vì
<Parent>
<myChild/>
<myChild2>default</myChild2>
</Parent>
Có một số cách tôi có thể làm này sạch với IXmlSerializable hoặc bất cứ điều gì khác?
Cảm ơn!
Tôi có nhiều thuộc tính có kiểu con, tôi không muốn có ShouldSerialize cho từng đơn lẻ. Tôi có thể thiết lập tất cả các thuộc tính của tôi thành null mà không được thiết lập trước khi tôi tuần tự hóa. – TrevDev
Tôi đã đăng câu trả lời để tự động đặt giá trị thành null thông qua một phương thức sẽ được gọi trước khi tuần tự hóa. Bạn có một ý tưởng rõ ràng hơn cho việc gán một giá trị null không? – TrevDev
@Thx không thực sự ... –