generic Các thiết lập:C# kế thừa bộ sưu tập và serialization
class Item
{
private int _value;
public Item()
{
_value = 0;
}
public int Value { get { return _value; } set { _value = value; } }
}
class ItemCollection : Collection<Item>
{
private string _name;
public ItemCollection()
{
_name = string.Empty;
}
public string Name { get {return _name;} set {_name = value;} }
}
Bây giờ, cố gắng để serialize bằng cách sử dụng đoạn mã sau:
ItemCollection items = new ItemCollection();
...
XmlSerializer serializer = new XmlSerializer(typeof(ItemCollection));
using (FileStream f = File.Create(fileName))
serializer.Serialize(f, items);
Khi nhìn vào XML kết quả tôi thấy rằng ItemCollection.Name giá trị không có!
Tôi nghĩ rằng những gì có thể xảy ra là các serializer thấy loại ItemCollection như một Bộ sưu tập đơn giản như vậy, bỏ qua bất kỳ thuộc tính gia tăng khác ...
Có ai đã gặp phải một vấn đề như vậy và tìm thấy một giải pháp?
Kính trọng,
Stécy
+1; cũng lưu ý rằng hành vi được chia sẻ bởi hầu hết các khuôn khổ ràng buộc dữ liệu. Nó chỉ đơn giản là không phải là một ý tưởng tốt cho các bộ sưu tập để có tài sản; bộ sưu tập có các mục (chỉ) - đó là công việc của họ. –
Tốt, bây giờ tôi cần bọc một số lớp học thu thập từ đó ... Tôi lo ngại rằng nó sẽ làm phức tạp sơ đồ lớp mặc dù ... –