如何将ToolStripMenuItems/collection保存/加载到properties.default.settings?(C#)

如何将ToolStripMenuItems/collection保存/加载到properties.default.settings?(C#),c#,winforms,application-settings,C#,Winforms,Application Settings,如何将ToolStripMenuItems/collection保存/加载到c#中的properties.default.settings? 还是序列化为xml?我必须使用哪种类型的列表? 然后,Andrius您可以创建具有名称和文本属性的简单可序列化类,填充列表并序列化/反序列化列表,如下所示: private XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<MySaveItems>)); private vo

如何将ToolStripMenuItems/collection保存/加载到c#中的properties.default.settings? 还是序列化为xml?我必须使用哪种类型的列表?
然后,Andrius

您可以创建具有名称和文本属性的简单可序列化类,填充列表并序列化/反序列化列表,如下所示:

private XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<MySaveItems>));
private void SerializeToFile()
{
    using (MemoryStream ms = new MemoryStream(5 * 1024))
    {
        List<MySaveItems> mySaveItemses = new List<MySaveItems>();
        foreach (ToolStripItem item in toolStrip1.Items)
        {
            MySaveItems mySaveItem = new MySaveItems();
            mySaveItem.name = item.Name;
            mySaveItem.text = item.Text;
            mySaveItemses.Add(mySaveItem);
        }
        xmlSerializer.Serialize(ms, mySaveItemses);
        File.WriteAllBytes("c:\\ToolStripItems.xml", ms.ToArray());
    }
}

private void DeserializeFromFile()
{
    using (StreamReader ms = new StreamReader("c:\\ToolStripItems.xml"))
    {
        List<MySaveItems> mySaveItemses;
        mySaveItemses = (List<MySaveItems>)xmlSerializer.Deserialize(ms);
    }
}

[Serializable]
public class MySaveItems
{
    public MySaveItems()
    {

    }

    [XmlElement]
    public string name { get; set; }
    [XmlElement]
    public string text { get; set; }
}
private XmlSerializer XmlSerializer=新的XmlSerializer(typeof(List));
私有void序列化文件()
{
使用(MemoryStream ms=新的MemoryStream(5*1024))
{
List mySaveItemses=新列表();
foreach(toolStrip1.Items中的ToolStripItem项)
{
MySaveItems mySaveItem=新建MySaveItems();
mySaveItem.name=项目名称;
mySaveItem.text=item.text;
添加(mySaveItem);
}
Serialize(ms,mySaveItemses);
writealBytes(“c:\\ToolStripItems.xml”,ms.ToArray());
}
}
私有void反序列化fromfile()
{
使用(StreamReader ms=new StreamReader(“c:\\ToolStripItems.xml”))
{
列出我的项目;
mySaveItemses=(列表)xmlSerializer.Deserialize(ms);
}
}
[可序列化]
公共类项目
{
公共物品
{
}
[XmlElement]
公共字符串名称{get;set;}
[XmlElement]
公共字符串文本{get;set;}
}

您可以创建具有名称和文本属性的简单可序列化类,填充列表并序列化/反序列化列表,如下所示:

private XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<MySaveItems>));
private void SerializeToFile()
{
    using (MemoryStream ms = new MemoryStream(5 * 1024))
    {
        List<MySaveItems> mySaveItemses = new List<MySaveItems>();
        foreach (ToolStripItem item in toolStrip1.Items)
        {
            MySaveItems mySaveItem = new MySaveItems();
            mySaveItem.name = item.Name;
            mySaveItem.text = item.Text;
            mySaveItemses.Add(mySaveItem);
        }
        xmlSerializer.Serialize(ms, mySaveItemses);
        File.WriteAllBytes("c:\\ToolStripItems.xml", ms.ToArray());
    }
}

private void DeserializeFromFile()
{
    using (StreamReader ms = new StreamReader("c:\\ToolStripItems.xml"))
    {
        List<MySaveItems> mySaveItemses;
        mySaveItemses = (List<MySaveItems>)xmlSerializer.Deserialize(ms);
    }
}

[Serializable]
public class MySaveItems
{
    public MySaveItems()
    {

    }

    [XmlElement]
    public string name { get; set; }
    [XmlElement]
    public string text { get; set; }
}
private XmlSerializer XmlSerializer=新的XmlSerializer(typeof(List));
私有void序列化文件()
{
使用(MemoryStream ms=新的MemoryStream(5*1024))
{
List mySaveItemses=新列表();
foreach(toolStrip1.Items中的ToolStripItem项)
{
MySaveItems mySaveItem=新建MySaveItems();
mySaveItem.name=项目名称;
mySaveItem.text=item.text;
添加(mySaveItem);
}
Serialize(ms,mySaveItemses);
writealBytes(“c:\\ToolStripItems.xml”,ms.ToArray());
}
}
私有void反序列化fromfile()
{
使用(StreamReader ms=new StreamReader(“c:\\ToolStripItems.xml”))
{
列出我的项目;
mySaveItemses=(列表)xmlSerializer.Deserialize(ms);
}
}
[可序列化]
公共类项目
{
公共物品
{
}
[XmlElement]
公共字符串名称{get;set;}
[XmlElement]
公共字符串文本{get;set;}
}

您到底想保存什么?项目名称?类型?位置?所有内容?项目名称和项目文本。谢谢你你到底想存什么?项目名称?类型?位置?所有内容?项目名称和项目文本。谢谢你,非常感谢。以及如何将项目列表加载回toolStrip1。项目?Reniuz,非常感谢。以及如何将项目列表加载回toolStrip1.Items?