如何将自定义集合保存到应用程序设置中?
How to save a custom collection to the application settings?
要跟进这个主题:
How to save a List<string> on Settings.Default?
我正在尝试做同样的事情,但使用自定义集合。我已经完成了与上面发布的相同的操作 link,但是我如何才能对对象列表执行此操作?
例如,如果它是 List<FoodTypes>
,其中 FoodTypes 有两个属性 - Food 和 Type。
食品类型:
Food | Type
------------------
Orange | Fruit
Lemon | Fruit
Pork | Meat
想法是将来可以配置这些类型,而无需从数据库中获取它们或不必重新部署应用程序。这是将使用它们的 Windows 服务。
编辑:我忘了提到我可以将我的 class 添加为设置的一种类型,但是我如何将食物和类型添加到设置中的值列?
编辑 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)
属性值允许您将所有内容存储在设置中。
要跟进这个主题: How to save a List<string> on Settings.Default?
我正在尝试做同样的事情,但使用自定义集合。我已经完成了与上面发布的相同的操作 link,但是我如何才能对对象列表执行此操作?
例如,如果它是 List<FoodTypes>
,其中 FoodTypes 有两个属性 - Food 和 Type。
食品类型:
Food | Type
------------------
Orange | Fruit
Lemon | Fruit
Pork | Meat
想法是将来可以配置这些类型,而无需从数据库中获取它们或不必重新部署应用程序。这是将使用它们的 Windows 服务。
编辑:我忘了提到我可以将我的 class 添加为设置的一种类型,但是我如何将食物和类型添加到设置中的值列?
编辑 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)
属性值允许您将所有内容存储在设置中。