Можете ли вы показать код, который вы используете для сериализации в настройках приложения?
Проблема не в типах, которые вы определили.Когда я это делаю, я получаю успешную сериализацию:
<MyPreferences
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GeneratorPreferences MyBool="true" />
</MyPreferences>
Для классов, определенных следующим образом:
public class MyPreferences
{
[XmlElement(ElementName="GeneratorPreferences")]
public TemplateGeneratorPreferences FormSpecificPref { get; set; }
public MyPreferences()
{
FormSpecificPref = new TemplateGeneratorPreferences();
}
}
public class TemplateGeneratorPreferences
{
[XmlAttribute("MyBool")]
public bool MyBool { get; set; }
public TemplateGeneratorPreferences()
{
MyBool = true;
}
}
и код сериализации, подобный этому:
var m = new MyPreferences();
var s1 = new XmlSerializer(typeof(MyPreferences));
s1.Serialize(Console.Out, m);
Примечание: вам не нужен атрибут [Serializable]
для классов, которые будут запускаться через сериализатор Xml.