c# - .net core ProtoBuf 上的序列化器在哪里?
问题描述
我Protobuf
在我的项目中使用Dotner Core 3.1
并安装这个包,但是当我编写这些代码行来序列化请求的对象时:
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
找不到相关的名称空间并得到找不到的错误Serializer
,
当前上下文中不存在名称“Serializer”
我对其进行测试.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
类之外,还包含所有运行时发出逻辑protobuf-net.Core
包含主要的读写器逻辑
在某些情况下,您不希望或不需要运行时发出片段,但在您的情况下:您这样做 - 所以只需将包依赖项更改为protobuf-net
.
您针对哪个平台的问题由该软件包管理器处理 - 您无需担心。它将为您的平台安装正确的二进制文件。
推荐阅读
- reactjs - 在多层圆环图中输入文本
- python - pyminifier对文件进行压缩后如何运行python
- javascript - Dash python:超过最大更新深度
- rpm - 公开构建需要 golang 1.16+ 的 rpm
- python - 使用 Keras 注意力在 sequence2sequence 模型中连接层形状误差
- python - 在 Windows 10 上安装 PyQt5
- c# - 如何在 Docker 映像中动态设置入口点 dll
- python - 在可执行文件python中包含一个excel文件
- asp.net - 如何在 ASP.NET 身份框架中跳过角色的登录页面
- r - 如何让 gCentroid 在极点工作?