//----------------------------------------------------------------------------------------------
int ObjectSerializer::SerializeContainerMap(char* p_fieldAddress, TypeNode* p_type, fstream& p_pen)
{
    // Pointer to map is not supported
    _ASSERTE(p_type->Indirection == false);
    _ASSERTE(p_type->TemplateArguments.size() == 1);

    Container*  container   = reinterpret_cast<Container*>(p_fieldAddress);
    Iterator*   itr         = container->GetIterator();
    int         count       = container->ContainerCount();

    p_pen.write(reinterpret_cast<char*>(&count), sizeof(int));
    while(itr->MoveNext())
    {
        SerializeType(itr->Current(), p_type->TemplateArguments[0], p_pen);
    }

    return container->TypeSize();
}