我有一个自定义类及其集合,我想用它在我的Settings.default中创建条目。我设法使用名称空间上的浏览(...)按钮设置设计器中的类型,并在给定的会话中使用。我可以存储并从我的类(或者这些类的对象)中获取值。Visual C#自定义类的类型设置不会保存
但设置不保存。 我已经使用this method在我的设置中实现我的自定义课程,并且正在尝试诸如this one之类的提示来保存它们 - 但这里没有运气。
我将如何保存自定义对象类? 最终的类中的类型是微不足道的,只不过是字符串,整数和布尔值。
更新: 它不是一个集合序列化的问题,包含一个字符串一个简单的类也将不存在。我将我的代码更改为更简单的示例。
using System;
using System.Windows.Forms;
using System.Configuration;
namespace tester
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
if(Properties.Settings.Default.MySetting== null)
{
MessageBox.Show("MySetting is null");
Properties.Settings.Default.MySetting = new saveme(); // this saveme will be accessible just fine for the duration of the session, but it won't persist.
}
textBox1.Text = Properties.Settings.Default.MySetting.somestring; // will always be "initial value" as per initialization of saveme()
}
private void button1_Click(object sender, EventArgs e)
{
Properties.Settings.Default.MySetting.somestring = textBox1.Text;
Properties.Settings.Default.Save();
}
}
[Serializable()]
public class saveme : ApplicationSettingsBase // class containing data
{
private string Somestring = "initial value";
[UserScopedSetting()]
[DefaultSettingValue("default value")]
[SettingsSerializeAs(SettingsSerializeAs.Binary)]
public string somestring
{
get { return Somestring; }
set { Somestring = value; }
}
}
}
它将总是最后MySetting是空
SettingsSerializeAs属性必须指定Binary作为我们的代码。 - 来自你基于的教程。继续尝试吧。 –
@Ephraim:你的意思是'[SettingsSerializeAs(SettingsSerializeAs.Binary)]'?我刚开始时有一个,但没有成功:/ –
@Ephraim我回到了Binary,结果相同 - 你有什么想法吗? –