Tôi serializing một lớp học như thế nàyLàm thế nào để loại trừ thuộc tính null khi sử dụng XmlSerializer
public MyClass
{
public int? a { get; set; }
public int? b { get; set; }
public int? c { get; set; }
}
Tất cả các loại là nullable vì tôi muốn dữ liệu tối thiểu được lưu trữ khi tuần tự một đối tượng thuộc loại này. Tuy nhiên, khi nó được đăng chỉ với "một" dân cư, tôi nhận được xml sau
<MyClass ...>
<a>3</a>
<b xsi:nil="true" />
<c xsi:nil="true" />
</MyClass>
Làm thế nào để thiết lập này lên đến chỉ nhận được xml cho các thuộc tính rỗng không? Kết quả mong muốn sẽ là
<MyClass ...>
<a>3</a>
</MyClass>
Tôi muốn loại trừ các giá trị null vì sẽ có một số thuộc tính và điều này là nhận được lưu trữ trong một cơ sở dữ liệu (yeah, thats không phải cuộc gọi của tôi) vì vậy tôi muốn giữ lại các dữ liệu chưa sử dụng tối thiểu .
Nếu bạn đã thêm tất cả thời gian phát triển chất thải cố gắng để có được xml để xem cách họ * nghĩ * nó nên nhìn ... bạn sẽ có một crapton toàn bộ giờ phát triển. Tôi đã từ bỏ lâu rồi. Bạn nên xem đó là một lựa chọn. – Will
@ Sẽ, tôi thường sẽ, không có vấn đề gì cả, nhưng điều này sẽ được sử dụng hàng ngàn lần một ngày và cả lớp, được tuần tự hóa, là khoảng 1000 ký tự, thats nếu tất cả các thuộc tính là null! Ngoài ra, tất cả điều này là trong db, không phải là sự lựa chọn của tôi: ( –
Đây là một câu hỏi hay, nhưng tôi nghĩ rằng đó là một bản sao của http://stackoverflow.com/questions/1296468/suppress-null-value-types-from -being-emitted-by-xmlserializer (mà Marc Gravell trả lời bằng cách thảo luận về mô hình đặc điểm) –