c# – 使用ApplicationSettingsBase存储通用列表
发布时间:2020-12-15 18:07:48 所属栏目:百科 来源:网络整理
导读:我正在尝试保存列表 Foo使用ApplicationSettingsBase,但即使填充了列表,它也只输出以下内容: setting name="Foobar" serializeAs="Xml" value //setting Foo定义如下: [Serializable()]public class Foo{ public String Name; public Keys Key1; public Ke
我正在尝试保存列表< Foo>使用ApplicationSettingsBase,但即使填充了列表,它也只输出以下内容:
<setting name="Foobar" serializeAs="Xml"> <value /> </setting> Foo定义如下: [Serializable()] public class Foo { public String Name; public Keys Key1; public Keys Key2; public String MashupString { get { return Key1 + " " + Key2; } } public override string ToString() { return Name; } } 如何启用ApplicationSettingsBase来存储List< Foo>? 解决方法
同意Thomas Levesque:
以下类已正确保存/读回: public class Foo { public string Name { get; set; } public string MashupString { get; set; } public override string ToString() { return Name; } } 注意:我不需要SerializableAttribute. 编辑:这是xml输出: <WindowsFormsApplication1.MySettings> <setting name="Foos" serializeAs="Xml"> <value> <ArrayOfFoo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Foo> <Name>Hello</Name> <MashupString>World</MashupString> </Foo> <Foo> <Name>Bonjour</Name> <MashupString>Monde</MashupString> </Foo> </ArrayOfFoo> </value> </setting> </WindowsFormsApplication1.MySettings> 我使用的设置类: sealed class MySettings : ApplicationSettingsBase { [UserScopedSetting] public List<Foo> Foos { get { return (List<Foo>)this["Foos"]; } set { this["Foos"] = value; } } } 最后我插入的项目: private MySettings fooSettings = new MySettings(); var list = new List<Foo>() { new Foo() { Name = "Hello",MashupString = "World" },new Foo() { Name = "Bonjour",MashupString = "Monde" } }; fooSettings.Foos = list; fooSettings.Save(); fooSettings.Reload(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |