C# 将表单元素属性保存到XML(保存控件状态)

C# 将表单元素属性保存到XML(保存控件状态),c#,xml,forms,save,state,C#,Xml,Forms,Save,State,我在一些项目中使用xml库保存设置,其工作原理如下: saveSettings(Control control, XmlConfig config, string controlName) 然后它将搜索该控件中的所有控件(递归),每次找到新控件时调用自己,等等,并将其所有信息保存到xml文件中,如: 然后把它们装回去 我上次使用它是在框架2中,最近我再次需要它,并重新使用它,它像普通一样保存XML文件,但在加载XML文件后似乎没有更新表单,我似乎无法找到原因,所有代码似乎都是正确的 有人知

我在一些项目中使用xml库保存设置,其工作原理如下:

saveSettings(Control control, XmlConfig config, string controlName)
然后它将搜索该控件中的所有控件(递归),每次找到新控件时调用自己,等等,并将其所有信息保存到xml文件中,如:

然后把它们装回去

我上次使用它是在框架2中,最近我再次需要它,并重新使用它,它像普通一样保存XML文件,但在加载XML文件后似乎没有更新表单,我似乎无法找到原因,所有代码似乎都是正确的

有人知道一个好的替代者吗?(默认的应用程序设置使用了一种非常糟糕的方法,但是指定要保存的控件的方法要简单得多,并且在任何地方都可以使用)


提前感谢=)

好吧,我这么做了,但比你描述的更明确。不久前,我整合了一组接口和类来支持这一点。它们的使用方式如下所示:

readonly ObjectSerializer _serializer;
public MyForm()
{
    _serializer = new ObjectSerializer(this,
        "Top", "Left", "Height", "Width",
        "_splitter.SplitterDistance");
    _serializer.ContinueOnError = true;
}

private void Form_Load(object sender, EventArgs e)
{
    _serializer.Deserialize(new CSharpTest.Net.Serialization.StorageClasses.UserSettingStorage());
}

void Form_Closing(object sender, FormClosingEventArgs e)
{
    _serializer.Serialize(new CSharpTest.Net.Serialization.StorageClasses.UserSettingStorage());
}
正在使用的库“CSharpTest.Net.library.dll”位于:


此ObjectSerializer在哪里?(using语句)找到了它,但是,以后如何保存它?我没有看到获取代码的方法:/Serialize和Deserialize是无效的