存储C#的设置?

时间:2011-05-03 01:57:08

标签: c#

我看过其他帖子,但这个问题与他们不同。

我想存储3个数据值(Type,String,String),我怎么能这样做?

它的一个例子是:String,“lol”,“lol2”。

我已经尝试了资源设置和设置设置,但都没有工作。他们都说这个名字不能加倍。

这适用于Windows窗体

感谢任何帮助。

我必须按此顺序拥有它。因为当有人从我下拉列表中选择方法“String”时,它会显示所有具有String类型的内容,包括“lol”。然后在选择'lol“字符串后,应将lol2放入文本框中。

3 个答案:

答案 0 :(得分:0)

搜索IsolatedStorage类。这个是sux =)。 但是如果你使用Silverlight,那么你可以使用很棒的IsolatedStorageSettings类!

答案 1 :(得分:0)

Settings.settings有效。然而,听起来你最好为这类数据制作自己的序列化格式。请记住,Settings.settings类适用于简单的用户和应用程序设置。可以更改的嵌套,复杂或大型结构应使用特定于应用程序的格式。对窗口位置和颜色首选项使用settings.settings(作为示例)。

答案 2 :(得分:0)

另一种选择是创建和管理您自己的设置文件。这是一个让您入门的示例。首先,创建一个类来表示要存储的数据CustomDataStoreItem。然后创建另一个类来保存那些CustomDataStoreItems的集合:

[Serializable()]
class CustomDataStore
{
    public CustomDataStore()
    {
        //This is required by serialization
    }
    private List<CustomDataStoreItem> _items;

    public List<CustomDataStoreItem> Items
    {
        get
        {
            if (_items == null)
                _items = new List<CustomDataStoreItem>();
            return _items;
        }
        set { _items = value; }
    }

    public void LoadSettings(string SettingsFileName)
    {
        if (File.Exists(SettingsFileName))
        {
            BinaryFormatter bf = new BinaryFormatter();
            FileStream fs = File.OpenRead(SettingsFileName);
            CustomDataStore ds = (CustomDataStore)bf.Deserialize(fs);
            fs.Close();
            _items = ds.Items;
        }
    }
    public void SaveSettings(string SettingsFileName)
    {
        if (File.Exists(SettingsFileName))
            File.Delete(SettingsFileName);
        BinaryFormatter bf = new BinaryFormatter();
        FileStream fs = File.Create(SettingsFileName);
        bf.Serialize(fs, this);
        fs.Close();
    }
}
[Serializable()]
class CustomDataStoreItem
{
    public CustomDataStoreItem()
    {
        //This is required by serialization
    }
    public string Type { get; set; }
    public string String1 { get; set; }
    public string String2 { get; set; }
}

现在你可以像这样使用这个类:

要保存设置,请将CustomDataStoreItems添加到CustomDataStore.Items集合中。然后调用SaveSettings方法:

CustomDataStore ds = new CustomDataStore();
CustomDataStoreItem dsi = new CustomDataStoreItem();
dsi.Type = "String";
dsi.String1 = "lol";
dsi.String2 = "lol2";
ds.Items.Add(dsi);
ds.SaveSettings(@"C:\Users\Public\Test.bin");

您可以像这样加载设置:

CustomDataStore ds = new CustomDataStore();
ds.LoadSettings(@"C:\Users\Public\Test.bin");
foreach (CustomDataStoreItem dsi in ds.Items)
 {
  Console.WriteLine(string.Format("{0} {1} {2}", dsi.Type, dsi.String1, dsi.String2));
 }