gpt4 book ai didi

protobuf-net - 找不到合适的默认类型编码。使用 protobuf 序列化时

转载 作者:行者123 更新时间:2023-12-02 02:28:14 28 4
gpt4 key购买 nike

我有以下类(class):-

[Serializable]
[DataContract(Name = "StateValueWrapper")]
public class StateValueWrapper
{
[DataMember(Order = 1)]
public Type StateValueType { get; set; }

[DataMember(Order = 2)]
public object WrappedObj { get; set; }
}

我正在尝试使用 protobuf.net 序列化上述类的对象。序列化时出现错误“找不到合适的默认类型编码。”请建议我为此需要做什么?下面是我的序列化代码:-

            MemoryStream ms = new MemoryStream();
var srariazeObj = new StateValueWrapper();
srariazeObj.StateValueType = typeof(int);
srariazeObj.WrappedObj = 5;
ProtoBuf.Serializer.NonGeneric.Serialize(ms, srariazeObj);

最佳答案

Type 不能通过 protobuf-net 序列化,object 也不能。我明白你想做什么,如果你真的不能提前知道类型。我怀疑您应该考虑序列化类型的 AssemblyQualifiedName(string)和对象的 byte[](通过 MemoryStream )。如果您愿意,我稍后可以举一个例子(让我知道)。

但是,如果可以声明您需要支持的类型的有限丢失(例如“string or int or Customer or Guid only”)那么那里是一种更有效的方便的方法 - 如果这是您的情况,我可以再举一个例子 - 让我知道。

关于protobuf-net - 找不到合适的默认类型编码。使用 protobuf 序列化时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4876040/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com