Tôi đang gặp sự cố trong xml serialization của bộ sưu tập quan sát được.XMLSerialize một ObservableCollection
Dưới đây là những gì tôi đang serializing:
public enum Status { Pending, Active, Completed, Cancelled }
public abstract class Entity : INotifyPropertyChanged
{
...
}
public class UserStory : Entity
{
public uint StoryID { get; set; }
public Status Status { get; set; }
...
public ObservableCollection<Task> Tasks { get; set; }
}
public class Task : Entity
{
public uint TaskID { get; set; }
...
}
Dưới đây là cách tôi serialize nó:
public static void SerializeObjectToXML<T>(T item, string FilePath)
{
XmlSerializer xs = new XmlSerializer(typeof(T));
using (StreamWriter wr = new StreamWriter(FilePath))
{
xs.Serialize(wr, item);
}
}
public class Main()
{
ObservableCollection<UserStory> UserStories { get; set; }
void Main()
{
...
ObservableCollection<object> Document = new ObservableCollection<object>();
Document.Add(UserStories);
SerializeObjectToXML<ObservableCollection<object>>(Document , "...");
...
}
}
Nhưng một lỗi xảy ra trong dòng xs.Serialize(wr, item);
nói:
InvalidOperation Ngoại lệ: Đã xảy ra lỗi khi tạo tài liệu XML. Nội ngoại lệ: Loại ScrumPresentor.ObservableCollection`1 [[ScrumPresentor.UserStory, ScrumPresentor, Version = 1.0.0.0, Culture = trung tính, PublicKeyToken = null]] có thể không được sử dụng trong bối cảnh này.
Tôi đang sử dụng ứng dụng Visual Studio 2010, WPF trong .NET 4.0.
Cảm ơn, nhưng tôi làm một công việc xung quanh đó thay vì đưa 'cái ObservableCollection' trong 'ObservableCollection ', Tôi tạo ra một lớp học mà contatins 'ObservableCollection '. Nhưng mã của bạn thực sự hoạt động. Dù sao cũng cảm ơn. Tôi muốn bình chọn câu trả lời của bạn nhưng tôi không thể vì tôi ít nhất cần 15 đại diện. –
Bạn có thể cung cấp đoạn mã cho lớp học này mà bạn đã tạo để đưa bộ sưu tập quan sát được không. Tôi đang đối mặt với cùng một vấn đề –