XML сериализация сложного класса

222
05 мая 2018, 14:27

Имеется довольно сложная структура следующего вида:

[Serializable]
public class A
{
    public int a1 {get;set;}
    public bool a2 { get; set; }
    public string a3 { get; set; }
    .......
}
[Serializable]
public class B
{
    public int b1 { get; set; }
    public bool b2 { get; set; }
    public string b3 { get; set; }
    public List<A> ba1 { get; set; }
    public List<string> ba2 { get; set; }
    ......
}

Третий день бьюсь над XML сериализацией класса B.

Выдает ошибку 'Тип "SLib.AccountCfg" с именем контракта данных "AccountCfg:http://schemas.datacontract.org/2004/07/SLib" не ожидается. Попробуйте использовать DataContractResolver, если вы используете DataContractSerializer, или добавьте любые статически неизвестные типы в список известных типов - например, используя атрибут KnownTypeAttribute или путем их добавления в список известных типов, передаваемый в сериализатор.'

Сама процедура сериализации

    public void Save(PhoneCfg inConfig)
    {
        XmlTextWriter xw = new XmlTextWriter("Sets.xml", Encoding.UTF8);
        xw.Formatting = Formatting.Indented;
        XmlDictionaryWriter writer = 
        XmlDictionaryWriter.CreateDictionaryWriter(xw);
        DataContractSerializer ser = new 
        DataContractSerializer(typeof(PhoneCfg));
        ser.WriteObject(writer, inConfig);
        writer.Close();
        xw.Close();
    }

Что я делаю не так?

READ ALSO
Selenium c# как двигать мышкой?

Selenium c# как двигать мышкой?

пытаюсь зайти в меню, активируемое по hover и кликнуть на элементНапример: https://www

232
Selenium параметры ChromeDrive

Selenium параметры ChromeDrive

из Selenium нужно в автоматизированном режиме сохранить файл на диск по ссылке (c#)

201
Конвертация миллисекунд в дату

Конвертация миллисекунд в дату

На клиенте получаю дату такого вида:

215
Chart назначить оси в коде программы

Chart назначить оси в коде программы

Имеется База данных, расположенная в определенной директории (допустим, P:\Pr1\databasemdb)

223