/// <summary>
/// Writes list objects (That extends from ICollection-Interfaces)
/// </summary>
/// <param name="objList">List object</param>
/// <param name="abstractHessianOutput">HessianOutput - Instance</param>
public override void WriteObject(object objList, AbstractHessianOutput abstractHessianOutput)
{
if (abstractHessianOutput.AddRef(objList))
{
return;
}
// TODO auch generische Listen schreiben
ICollection collection = ( ICollection)objList;
Type type = objList.GetType();
if (type.Equals(typeof(List <Object>)))
{
abstractHessianOutput.WriteListBegin(collection.Count, null);
}
else
{
abstractHessianOutput.WriteListBegin(collection.Count, objList.GetType().FullName);
}
IEnumerator enumerator = collection.GetEnumerator();
while (enumerator.MoveNext())
{
Object value = enumerator.Current;
abstractHessianOutput.WriteObject(value);
}
abstractHessianOutput.WriteListEnd();
}