using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using System.Collections;
using System.Xml.Serialization;
using System.Security.Permissions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MyCollection cc = new MyCollection();
cc.Add(new Item("1", "1"));
cc.Add(new Item("22", "22"));
cc.Add(new Item("333", "333"));
cc.Add(new Item("4444", "4444"));
XmlSerializer ser = new XmlSerializer(typeof(MyCollection));
FileStream stream = new FileStream("c://test.xml", FileMode.OpenOrCreate);
ser.Serialize(stream, cc);
stream.Close();
System.Console.Read();
}
}
public class Item
{
private string name;
private string code;
public string Name
{
get { return name; }
set { name = value; }
}
public string Code
{
get { return code; }
set { code = value; }
}
public Item()
{
}
public Item(string name, string code)
{
this.name = name;
this.code = code;
}
}
// [EnvironmentPermission(SecurityAction.Assert)]
public class MyCollection : ICollection {
private SortedList list = new SortedList();
public MyCollection () {
}
// [EnvironmentPermission(SecurityAction.Assert)]
public void Add(Item item) {
list.Add(item.Name,item);
}
public Item this[int index] {
get {return (Item)list.GetByIndex(index);}
}
#region ICollection 成员
public bool IsSynchronized {
get {
return false;
}
}
public int Count {
get {
return list.Count;
}
}
[EnvironmentPermission(SecurityAction.Assert)]
public void CopyTo(Array array, int index) {
list.CopyTo(array,index);
}
public object SyncRoot {
get {
return this;
}
}
#endregion
#region IEnumerable 成员
public IEnumerator GetEnumerator() {
return list.GetEnumerator();
}
#endregion
}
}
http://www.cnblogs.com/lsmsky/archive/2008/01/15/1040423.html