如何在我的 ASP.NET Core Web API 中启用 BSON 序列化?

Posted

技术标签:

【中文标题】如何在我的 ASP.NET Core Web API 中启用 BSON 序列化?【英文标题】:How do I enable BSON serialization in my ASP.NET Core Web API? 【发布时间】:2017-08-30 10:00:54 【问题描述】:

我是 ASP.NET Core 和一般网络编程的新手。我刚刚成功完成了我的第一个基于 RESTfull 设计原则的 ASP.NET Core Web API。它目前使用 JSON 序列化来发送响应(Visual Studio 默认),但我想尝试 BSON。我花了一天时间在谷歌上搜索,似乎找不到任何关于如何向服务器添加 BSON 序列化/反序列化功能的示例。我遇到了几篇关于如何在全框架 ASP.NET 上执行此操作的文章,其中包含开箱即用的内容已有好几年了(例如:https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/bson-support-in-web-api-21 和 http://www.strathweb.com/2012/07/bson-binary-json-and-how-your-web-api-can-be-even-faster/),但与此无关特别是 ASP.NET Core。

我搜索了 VS 生成的源代码文件,希望能找到与我链接的全框架示例类似的东西,但没有什么能引起我的注意,因为它们几乎没有相似之处。有人可以发布(或链接到)一些代码来说明这是如何在 ASP.NET Core 中完成的吗?非常感谢您提前。

【问题讨论】:

【参考方案1】:

您可以使用此格式化程序:https://github.com/WebApiContrib/WebAPIContrib.Core

然后在startup.cs处添加:

using WebApiContrib.Core.Formatter.Bson;

namespace MyApp

    public class Startup
    
        public void ConfigureServices(IServiceCollection services)
        
            services.AddMvc()
                .AddBsonSerializerFormatters();
        
    

【讨论】:

非常感谢您。但是,我很惊讶地看到为此需要安装另一个模块化包。 ASP.NET Core 不支持开箱即用的 BSON 序列化吗?还是这是对 .NET Core 的“官方”BSON 支持? .net core 2.0 将支持 BinaryFormatter:github.com/dotnet/corefx/pull/10144 @FabriDamazio 2.0 已经发布,那么现在BinaryFormatter 如何启用 BSON? @HappyNomad 也许你可以在这里找到一些东西:docs.microsoft.com/en-us/dotnet/standard/serialization/… @FabriDamazio 谢谢,看起来很有趣。但至少在我的情况下,二进制序列化不是 BSON 的替代品。

以上是关于如何在我的 ASP.NET Core Web API 中启用 BSON 序列化?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core Web API 身份验证

Asp.Net Core Web API 应用程序:如何更改监听地址?

如何在Asp.net Core的登录过程中为“记住我”设置单个cookie超时?

在 ASP .NET Core 2.1 Web Api 中启用 CORS

来自静态类的 ASP.NET Core Web API 日志记录

ASP.NET Core 通过 web.config 授权 AD 组