MessagePack反序列化异常FormatterNotRegisteredException
MessagePack deserialize exception FormatterNotRegisteredException
我有一个需要能够非常快速反序列化的统一项目。我试过消息包。我遵循了教程,但是当触发反序列化时,我收到此错误:
FormatterNotRegisteredException: DeserializedObject 未在解析器中注册
这是我的 class:
using UnityEngine;
using MessagePack;
[MessagePackObject]
public class DeserializedObject
{
[Key(0)]
public SortedDictionary<string, SortedDictionary<string, ushort[,]>> features;
}
我从其他 class 中这样调用它:
z-表示字节。
DeserializedObject ds = MessagePackSerializer.Deserialize<DeserializedObject>(z);
所以我想知道如何注册我的class?
我所做的是使用这个生成解析器和格式化程序:
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);
我有一个需要能够非常快速反序列化的统一项目。我试过消息包。我遵循了教程,但是当触发反序列化时,我收到此错误:
FormatterNotRegisteredException: DeserializedObject 未在解析器中注册
这是我的 class:
using UnityEngine;
using MessagePack;
[MessagePackObject]
public class DeserializedObject
{
[Key(0)]
public SortedDictionary<string, SortedDictionary<string, ushort[,]>> features;
}
我从其他 class 中这样调用它:
z-表示字节。
DeserializedObject ds = MessagePackSerializer.Deserialize<DeserializedObject>(z);
所以我想知道如何注册我的class?
我所做的是使用这个生成解析器和格式化程序:
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);