首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ApplicationSettingsBase在C#中保存自定义对象列表的自定义设置

使用ApplicationSettingsBase在C#中保存自定义对象列表的自定义设置
EN

Stack Overflow用户
提问于 2016-10-30 22:54:33
回答 1查看 957关注 0票数 1

我试图使用ApplicationSettingsBase来保存自定义对象的列表。下面是我的应用程序设置类:

代码语言:javascript
复制
internal class ApplicationSettings: ApplicationSettingsBase
{
    [DefaultSettingValue(""), UserScopedSetting]
    public List<MyAwesomeClass> MyObjects
    {
        get
        {
            try
            {
                return this["MyObjects"] as    List<MyAwesomeClass>;
            }
            catch (SettingsPropertyNotFoundException)
            {
                return null;
            }             
        }
    }

    public void Add(MyAwesomeClass val)
    {
        MyObjects.Add(val);
        this["MyObjects"] =  MyObjects;
    }
}

这是我的定制课程:

代码语言:javascript
复制
[Serializable]
public class MyAwesomeClass 
{
    public Guid Id { get; set; }
    public string SomeStringProperty{ get; set; }
    public bool SomeBooleanProperty{ get; set; }
}

下面是用法:

代码语言:javascript
复制
_applicationSettings = new ApplicationSettings();
_applicationSettings.Add(new MyAwesomeClass {/*Some initial values*/});
_applicationSettings.Save();

但是当应用程序重新启动时,_applicationSettings.MyObjects总是有零计数。我不知道为什么我的名单不想存钱。有人能帮我吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-30 23:33:33

你需要用[SettingsSerializeAs(SettingsSerializeAs.Binary)]来装饰你的房产

代码语言:javascript
复制
[DefaultSettingValue(""), UserScopedSetting]
[SettingsSerializeAs(SettingsSerializeAs.Binary)]
public List<MyAwesomeClass> MyObjects

应用程序设置架构设置持久性?设置序列化 如果实现自己的设置类,则可以使用SettingsSerializeAsAttribute使用SettingsSerializeAs枚举标记二进制或自定义序列化的设置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40334532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档