/// <summary>
/// Writes enum to the output stream
/// </summary>
/// <param name="obj"> Enum to write</param>
/// <param name="abstractHessianOutput">Instance of the hessian output</param>
public override void WriteObject(object obj, AbstractHessianOutput abstractHessianOutput)
{
// immer den Referenzzähler hochzählen!
// (manche enums mit nullable funktionieren nicht)
object unrefobj = new object();
if (abstractHessianOutput.AddRef(unrefobj))
{
return;
}
if (obj == null)
{
abstractHessianOutput.WriteNull();
}
else
{
Type enumType = obj.GetType();
string name = //Enum.GetName(enumType, obj);
((Enum)obj).ToString(); // das geht auch mit .NET Mobile
abstractHessianOutput.WriteMapBegin(enumType.FullName);
abstractHessianOutput.WriteObject("name");
abstractHessianOutput.WriteObject(name);
abstractHessianOutput.WriteMapEnd();
}
}