Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将自定义集合保存到应用程序设置?_C#_Settings_App Config_Application Settings - Fatal编程技术网

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
节点。