C# 如何将自定义集合保存到应用程序设置?
要对此主题进行后续操作,请执行以下操作: 我正试图做同样的事情,但与自定义收集。我已经做了与上面发布的链接相同的操作,但是如何才能对对象列表执行此操作 例如,如果它是一个C# 如何将自定义集合保存到应用程序设置?,c#,settings,app-config,application-settings,C#,Settings,App Config,Application Settings,要对此主题进行后续操作,请执行以下操作: 我正试图做同样的事情,但与自定义收集。我已经做了与上面发布的链接相同的操作,但是如何才能对对象列表执行此操作 例如,如果它是一个列表,其中FoodTypes有两个属性-Food和Type 食物类型: Food | Type ------------------ Orange | Fruit Lemon | Fruit Pork | Meat 其思想是,这些类型可以在将来进行配置,而无需从数据库获取它们或重
列表
,其中FoodTypes有两个属性-Food和Type
食物类型:
Food | Type
------------------
Orange | Fruit
Lemon | Fruit
Pork | Meat
其思想是,这些类型可以在将来进行配置,而无需从数据库获取它们或重新部署应用程序。这是一个将使用它们的Windows服务
编辑:我忘了提到我可以将我的类添加为设置的一种类型,但如何将食物和类型添加到设置的值列中
编辑2:应用程序不必更改它们或保存新的,它应该只能从配置中读取它们,以便比较从数据库返回的结果。假设
FoodType
类型是可序列化的(例如,具有该属性)。您可以将所需的集合添加到
Settings.Designer.cs
文件:
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Configuration.SettingsSerializeAs(global::System.Configuration.SettingsSerializeAs.Binary)]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public List<FoodType> FoodTypes
{
get
{
return this["FoodTypes"] as List<FoodType>;
}
set
{
this["FoodTypes"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[全局::System.Configuration.SettingsSerializeAs(全局::System.Configuration.SettingsSerializeAs.Binary)]
[global::System.Configuration.DefaultSettingValueAttribute(“”)
公共列表食物类型
{
得到
{
将此[“FoodTypes”]作为列表返回;
}
设置
{
此[“FoodTypes”]=值;
}
}
属性值允许您存储设置中的所有内容。您不能将“保存列表”设置为字符串,f.e序列化为json吗?@pwas我不确定您的意思,但它必须以简单的方式保存,因为它只能保存几个值(最多五个)。它甚至不必是一个对象列表,但我想不出另一种方法。回答很好,但您能否详细说明如何将
FoodTypes
添加到设置中?@Apostrofix在您的程序中填充集合,将其分配到settings.Default.FoodTypes
并保存设置。然后找到保存的设置文件(通常是C:\Users\user\u name\AppData\Local\company\u name\app\u name\version\u number\user.config
)并从中获取FoodTypes
节点。