.net core ProtoBuf 上的 Serializer 在哪里?
Where is Serializer on .net core ProtoBuf?
我在 Dotner Core 3.1
中使用 Protobuf
并在我的项目中安装这个 Package,但是当我编写这些代码行来序列化请求的对象时:
public static byte[] ProtoSerialize<T>(T record) where T : class
{
try
{
using (var stream = new MemoryStream())
{
Serializer.Serialize(stream, record);
return stream.ToArray();
}
}
catch
{
throw;
}
}
Visual studio
找不到相关名称 space 并收到错误消息,找不到 Serializer
、
The name 'Serializer' does not exist in the current context
我在 .Net
上测试它并安装了相关的包,但在 .Net Core
上我遇到了错误。
什么是相关的 namespece
?有什么问题?
基本上,安装 protobuf-net
包。
protobuf-net.Core
不是“.NET Core 上的 protobuf-net”——而是“protobuf-net 的核心部分”。 protobuf-net
依赖于 protobuf-net.Core
,无论您使用的是 .NET Framework、.NET Core、.NET 5+ 还是其他(在 .NET Standard 上)。
protobuf-net
包含所有运行时发出逻辑,除了 Serializer
class
protobuf-net.Core
包含主要的 reader/writer 逻辑
有些情况下您不希望或不需要运行时发出片段,但在您的情况下:您需要 - 所以只需将包依赖项更改为 protobuf-net
。
您的目标平台问题由该包管理器处理 - 您无需担心。它将为您的平台安装正确的二进制文件。
我在 Dotner Core 3.1
中使用 Protobuf
并在我的项目中安装这个 Package,但是当我编写这些代码行来序列化请求的对象时:
public static byte[] ProtoSerialize<T>(T record) where T : class
{
try
{
using (var stream = new MemoryStream())
{
Serializer.Serialize(stream, record);
return stream.ToArray();
}
}
catch
{
throw;
}
}
Visual studio
找不到相关名称 space 并收到错误消息,找不到 Serializer
、
The name 'Serializer' does not exist in the current context
我在 .Net
上测试它并安装了相关的包,但在 .Net Core
上我遇到了错误。
什么是相关的 namespece
?有什么问题?
基本上,安装 protobuf-net
包。
protobuf-net.Core
不是“.NET Core 上的 protobuf-net”——而是“protobuf-net 的核心部分”。 protobuf-net
依赖于 protobuf-net.Core
,无论您使用的是 .NET Framework、.NET Core、.NET 5+ 还是其他(在 .NET Standard 上)。
protobuf-net
包含所有运行时发出逻辑,除了Serializer
classprotobuf-net.Core
包含主要的 reader/writer 逻辑
有些情况下您不希望或不需要运行时发出片段,但在您的情况下:您需要 - 所以只需将包依赖项更改为 protobuf-net
。
您的目标平台问题由该包管理器处理 - 您无需担心。它将为您的平台安装正确的二进制文件。