2011-11-10 3 views
1

어떻게 저장할 수/C#에서 properties.default.settings toolstripmenuitem 항목/컬렉션을로드 할 수 있습니까? 또는 xml로 직렬화 하시겠습니까? 어떤 유형의 목록을 사용해야합니까? 당신보다 , 안드리toolstripmenuitem 항목/컬렉션을 properties.default.settings에 저장 /로드하는 방법? (C#)

+0

StringCollection 작품. –

+0

정확히 저장 하시겠습니까? 상품명? 유형? 위치? 모두? – Reniuz

+0

항목 이름 및 항목 텍스트. 고맙습니다. – Andrius

답변

1

그럼 당신은과 같이/역 직렬화 목록을 목록을 작성하여 직렬화, 이름 및 텍스트 속성을 가진 간단한 직렬화 클래스를 만들 수 있습니다

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; } 
} 
+0

Reniuz, 고맙습니다. 어떻게 toolStrip1.Items에 항목 목록을 다시로드 할 수 있습니까? – Andrius

관련 문제