/// <summary>
/// Writes map in the output stream
/// </summary>
/// <param name="obj"> Object to write</param>
/// <param name="abstractHessianOutput">Instance of the hessian output</param>
public override void WriteObject(object obj, AbstractHessianOutput abstractHessianOutput)
{
if (abstractHessianOutput.AddRef(obj))
{
return;
}
IDictionary dictionary = (IDictionary)obj;
Type mapType = obj.GetType();
if (mapType.Equals(typeof(Dictionary <Object, Object>)))
{
abstractHessianOutput.WriteMapBegin(null);
}
else
{
abstractHessianOutput.WriteMapBegin(mapType.Name);
}
IDictionaryEnumerator enumerator = dictionary.GetEnumerator();
while (enumerator.MoveNext())
{
object objKey = enumerator.Key;
abstractHessianOutput.WriteObject(objKey);
object objValue = enumerator.Value;
abstractHessianOutput.WriteObject(objValue);
}
abstractHessianOutput.WriteMapEnd();
}