要跟进此主题: How to save a List<string> on Settings.Default?
我正在尝试使用自定义集合执行相同操作。我已经完成了与上面发布的链接相同的操作,但是如何才能为对象列表执行此操作?
例如,如果它是List<FoodTypes>
,其中FoodTypes有两个属性 - 食物和类型。
FoodTypes:
Food | Type
------------------
Orange | Fruit
Lemon | Fruit
Pork | Meat
我们的想法是,将来可以配置这些类型,而无需从数据库中获取这些类型或必须重新部署应用程序。它是一个将使用它们的Windows服务。
编辑:我忘了提到我可以将我的类添加为设置的类型,但是如何在设置中将Food和Type添加到Value列?
编辑2:应用程序不必更改它们或保存新的应用程序,它应该只能从配置中读取它们,以便它可以比较从数据库返回的结果。
答案 0 :(得分:2)
假设FoodType
类型是可序列化的(例如,具有Serializable
属性)。
您可以将所需的集合添加到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;
}
}
SettingsSerializeAs(SettingsSerializeAs.Binary)
属性值允许您将所有内容存储在设置中。