我看过其他帖子,但这个问题与他们不同。
我想存储3个数据值(Type,String,String),我怎么能这样做?
它的一个例子是:String,“lol”,“lol2”。
我已经尝试了资源设置和设置设置,但都没有工作。他们都说这个名字不能加倍。
这适用于Windows窗体
感谢任何帮助。
我必须按此顺序拥有它。因为当有人从我下拉列表中选择方法“String”时,它会显示所有具有String类型的内容,包括“lol”。然后在选择'lol“字符串后,应将lol2放入文本框中。
答案 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));
}