XMLSerialize an 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 Exception: Произошла ошибка при генерации XML-документа. Inner Exception: Тип ScrumPresentor.ObservableCollection`1[[ScrumPresentor.UserStory, ScrumPresentor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] не может быть использована в данном контексте.

Я использую Visual Studio 2010, приложение WPF в .NET 4.0.

6
задан rTECH 18 July 2017 в 22:00
поделиться