예제 #1
0
    protected void Serialize(WriteTarget target)
    {
        Type type = target.item.GetType();

        context = target.item;
        int id;

        if (type.IsClass)
        {
            id = GetRefId(target.item);
            outputTargets[id] = target;
        }
        else
        {
            id = -1;
        }
        //string creationType = SerializerUtil.GetCreationType(type, context);
        TypeSerializer serializer = SerializerUtil.GetTypeSerializer(type);

        builder.Length = 0;
        writeCalls     = 0;
        serializer.Serialize(target.item, this);
        target.id         = id;
        target.fieldCount = writeCalls;
        target.fields     = builder.ToString();
        target.version    = serializer.GetVersion();
    }