Revision: 46916
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 27, 2011 12:13 by aelesbao
Initial Code
/// <summary>
/// <see cref="ICollection{T}"/> implementation which also provides xml serialization
/// </summary>
/// <typeparam name="T">The type of the contained elements</typeparam>
public abstract class XmlSerializableCollection<T> : ICollection<T>, IXmlSerializable
{
#region Fields
private readonly IList<T> items = new List<T>();
#endregion
#region Properties
/// <summary>
/// Obtains / Sets the element in a given ordinal position
/// </summary>
/// <param name="index">The ordinal position</param>
public T this[int index]
{
get { return items[index]; }
set { items[index] = value; }
}
#endregion
#region ICollection<T> Members
public void Add( T item )
{
items.Add( item );
}
public void Clear()
{
items.Clear();
}
public bool Contains( T item )
{
return items.Contains( item );
}
public void CopyTo( T[] array, int arrayIndex )
{
items.CopyTo( array, arrayIndex );
}
public int Count
{
get { return items.Count; }
}
public bool IsReadOnly
{
get { return items.IsReadOnly; }
}
public bool Remove( T item )
{
return items.Remove( item );
}
#endregion
#region IEnumerable<T> Members
public IEnumerator<T> GetEnumerator()
{
return items.GetEnumerator();
}
#endregion
#region IEnumerable Members
IEnumerator IEnumerable.GetEnumerator()
{
return items.GetEnumerator();
}
#endregion
#region IXmlSerializable Members
public virtual XmlSchema GetSchema()
{
return null;
}
public virtual void ReadXml( XmlReader reader )
{
XmlSerializerHelper.DeserializeCollection( reader, items );
}
public virtual void WriteXml( XmlWriter writer )
{
XmlSerializerHelper.Serialize( writer, this );
}
#endregion
}
Initial URL
Initial Description
[Serializable]
[XmlRoot("items")]
public class ItemCollection : XmlSerializableCollection<Item>
{
}
Initial Title
XML Serializable Collection
Initial Tags
xml
Initial Language
C#