我有一个统一的项目,我需要能够非常快速地反序列化。我尝试了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);
所以我想知道如何注册我的课程吗?
我所做的是使用此方法生成解析器和格式化程序:
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);