首页 新闻 会员 周边

ASP.NET Core 序列化配置在哪里?

0
悬赏园豆:50 [已解决问题] 解决于 2019-09-27 15:12

不是问怎么配置序列化输出, 问的是新建的 ASP.NET Core API(.NET Core 3.0)项目会默认输出json格式数据, 这个默认配置在源码哪里? 没找到对应的内容...

Host.CreateDefaultBuilder()源码在这里, 但是没看到对应的序列化默认配置?

taadis的主页 taadis | 菜鸟二级 | 园豆:211
提问于:2019-09-27 13:34
< >
分享
最佳答案
0

你想默认序列化成什么格式?

收获园豆:50
dudu | 高人七级 |园豆:31003 | 2019-09-27 13:44

不是想序列化成什么样子...我想知道默认输出json格式这个配置在源码哪个位置...没找到

taadis | 园豆:211 (菜鸟二级) | 2019-09-27 13:48

@taadis: 试试

services.AddMvc(options =>
{
    options.RespectBrowserAcceptHeader = true; // false by default
    options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
});

参考

dudu | 园豆:31003 (高人七级) | 2019-09-27 13:58

@dudu: 嘟嘟哥 我问的是源码里默认输出json相关的代码或者说默认配置在哪里...不是如何自定义序列化输出...

taadis | 园豆:211 (菜鸟二级) | 2019-09-27 14:03

@taadis:

dudu | 园豆:31003 (高人七级) | 2019-09-27 15:09

@dudu: 嗯 我已经找到了...顺便有新发现 多谢了

taadis | 园豆:211 (菜鸟二级) | 2019-09-27 15:12
其他回答(1)
0

回娘家之路...

services.AddControllers();
// 内部会调用一个私有方法 AddControllersCore()
// https://github.com/aspnet/AspNetCore/blob/v3.0.0/src/Mvc/Mvc/src/MvcServiceCollectionExtensions.cs#L94
// 而 AddControllersCore 内部调用了 AddFormatterMappings()
// https://github.com/aspnet/AspNetCore/blob/v3.0.0/src/Mvc/Mvc/src/MvcServiceCollectionExtensions.cs#L150
// 内部添加了单例服务 FormatFilter
// https://github.com/aspnet/AspNetCore/blob/v3.0.0/src/Mvc/Mvc.Core/src/DependencyInjection/MvcCoreMvcCoreBuilderExtensions.cs#L105

// 发现了 Syetem.Text.Json 输出转义和中文正常的配置 2333
// https://github.com/aspnet/AspNetCore/blob/v3.0.0/src/Mvc/Mvc.Core/src/Formatters/SystemTextJsonOutputFormatter.cs

// 另符默认支持的几种类型在这里
// https://github.com/aspnet/AspNetCore/blob/v3.0.0/src/Mvc/Mvc.Core/src/Formatters/MediaTypeHeaderValues.cs
taadis | 园豆:211 (菜鸟二级) | 2019-09-27 14:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册