MessagePack反序列化异常FormatterNotRegisteredException

问题描述 投票:0回答:1

我有一个统一的项目,我需要能够非常快速地反序列化。我尝试了MessagePack。我遵循了教程,但是当反序列化触发时,我收到此错误:

FormatterNotRegisteredException:DeserializedObject未在解析器中注册

这是我的课程:

using UnityEngine;
using MessagePack;

[MessagePackObject]
public class DeserializedObject
{
   [Key(0)]
   public SortedDictionary<string, SortedDictionary<string, ushort[,]>> features;

}

我从其他班级这样称呼:

z代表字节。

DeserializedObject ds = MessagePackSerializer.Deserialize<DeserializedObject>(z);

所以我想知道如何注册我的课程吗?

c# unity3d deserialization msgpack
1个回答
0
投票

我所做的是使用此方法生成解析器和格式化程序:

1. mpc.exe -i "..\src\Sandbox.Shared.csproj" -o "MessagePackGenerated.cs" -m
2. restart unity +  vscode
3.
    var resolver = MessagePack.Resolvers.CompositeResolver.Create(
                    NameOfGeneratedNamespace.Resolvers.NameOfResolver.Instance);
    var options = MessagePackSerializerOptions.Standard.WithResolver(resolver);

    DeserializedObject ds = MessagePackSerializer.Deserialize<DeserializedObject>(z,options);
© www.soinside.com 2019 - 2024. All rights reserved.