Đây là lớp học của tôi:Làm thế nào để deserialize null mảng để null trong C#?
public class Command
{
[XmlArray(IsNullable = true)]
public List<Parameter> To { get; set; }
}
Khi tôi serialize một đối tượng của lớp này:
var s = new XmlSerializer(typeof(Command));
s.Serialize(Console.Out, new Command());
nó in như mong đợi (tiêu đề xml và mặc định MS không gian tên được bỏ qua):
<Command><To xsi:nil="true" /></Command>
Khi tôi lấy xml này và cố gắng deserialize nó tôi đã bị mắc kẹt, bởi vì nó luôn luôn in "Không null":
var t = s.Deserialize(...);
if (t.To == null)
Console.WriteLine("Null");
else
Console.WriteLine("Not null");
Làm thế nào để buộc deserializer làm cho danh sách của tôi rỗng, nếu nó là null trong xml?
Là nó thực sự quan trọng đối với bạn nếu bạn không có danh sách hoặc một danh sách trống? –
Đúng. Tôi có thể giải quyết trường hợp này với một số lá cờ tất nhiên, nhưng tôi muốn biết nếu có một giải pháp tiêu chuẩn tốt. –
Tránh các đối tượng null thường là một điều tốt (ít bị lỗi, không cần phải kiểm tra null tất cả xung quanh mã vv). Sử dụng cờ sẽ chỉ rõ chính xác giá trị null đó đại diện cho cái gì. – Groo