JasonXuDeveloper / Nino

Definite useful and high performance serialization library for any C# projects, including but not limited to .NET Core apps or Unity/Godot games.
https://nino.xgamedev.net
MIT License
468 stars 44 forks source link

能不能支持一下多态 #55

Closed 526077247 closed 1 year ago

526077247 commented 1 year ago

想用nino替换掉odin的持久化功能,odin老是丢数据。

比如下面这种数据结构

    [NinoSerialize]
    public class Test0
    {
        [NinoMember(1)] public List<Test1> a = new List<Test1>();
    }

    [NinoSerialize]
    public class Test1
    {

    }

    [NinoSerialize]
    public class Test2: Test1
    {

    }

        {
            Test0 test = new Test0();
            test.a.Add(new Test1());
            test.a.Add(new Test2());
            var bytes = Nino.Serialization.Serializer.Serialize(test);

            test = Nino.Serialization.Deserializer.Deserialize<Test0>(bytes);
        }
JasonXuDeveloper commented 1 year ago

理论上用自动收集字段的序列化可以实现多态,就是NinoSerialize标签内传false,可以试试,不行的话我支持一下多态

526077247 commented 1 year ago

测试了一下,好像不太行

JasonXuDeveloper commented 1 year ago

测试了一下,好像不太行

好的,我近期加一下多态的支持

JasonXuDeveloper commented 1 year ago
image

支持多态了

JasonXuDeveloper commented 1 year ago

我unity下跑一下,没问题就commit和更新nuget了

JasonXuDeveloper commented 1 year ago

于 5e58150446a9ad6a816e8517f70240bfa3db4f44 提交里支持了多态