XMLSerialize a ObservableCollection
У меня проблема с сериализацией XML наблюдаемой коллекции.
Вот что я сериализирую:
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; }
...
}
Вот как я это сериализую:
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 , "...");
...
}
}
Но ошибка возникает вxs.Serialize(wr, item);
линия, говорящая:
Исключение InvalidOperation: Произошла ошибка при создании документа XML.Внутреннее исключение: Тип ScrumPresentor.ObservableCollection`1 [[ScrumPresentor.UserStory, ScrumPresentor, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null]] не может использоваться в этом контексте.
Я использую Visual Studio 2010, приложение WPF в .NET 4.0.