sharp-oodb/mapping/ArrayMapping.cs

33 lines
956 B
C#

using System;
using System.Xml;
using System.Collections.Generic;
using System.Collections;
namespace oodb.mapping
{
public class ArrayMapping : ListMapping
{
public ArrayMapping(OODB oodb,Type type)
:base(oodb,typeof(List<>).MakeGenericType(type.GetElementType()))
{
}
public override XmlElement ToXml(XmlDocument xmlDocument, object value)
{
IList list = value as IList;
Array array = Array.CreateInstance(ElementMapping.NativeType, list.Count);
(list as IList).CopyTo(array, 0);
return base.ToXml(xmlDocument,list);
}
public override object FromXml(XmlElement xmlValue)
{
IList list = base.FromXml(xmlValue) as IList;
Array array = Array.CreateInstance(ElementMapping.NativeType, list.Count) as Array;
list.CopyTo(array, list.Count);
return array;
}
}
}