Remarks

ASP.NET Web API 使用Swagger使用笔记

删除回忆录丶 提交于 2020-07-25 16:37:22
最近换了工作,其中Webapi这块没有文档,之前有了解过Swagger借此机会好好整理下常用的地方分享给有需要的小伙伴。 概述: 1.swagger 引用 2.swagger 问题1.action 方法名称相同处理 3.swagger 问题2.序列化出来的JSON NULL 值处理 4. 汉化及controller说明 5. 统一返回HttpResponseMessage 返回类型 指定 6. 自定义 HTTP Header (oauth2.0 请求) 7.请求示例remarks 1.swagger 引用 第一步: 第二步: 修改SwaggerConfig.cs 如 api 版本号,title 第三步: 创建项目XML注释文档 右键项目→属性→生成→选中下方的 "XML文档文件" 然后保存 配置启用: c.IncludeXmlComments(string.Format("{0}/bin/BjxWebApis.XML",System.AppDomain.CurrentDomain.BaseDirectory)); 第四步:启动项目 地址:http://localhost:58303/swagger 哈哈 成功了,不对这个是最终效果,下面一步一步来实现吧。 2.swagger 问题1.action 方法名称相同处理 根据错误提示 很快发现 某位大神 同样的接口名 传递了不同参数

WaitAll vs WhenAll

筅森魡賤 提交于 2020-07-23 23:49:55
WaitAll vs WhenAll 回答1 Task.WaitAll blocks the current thread until everything has completed. Task.WhenAll returns a task which represents the action of waiting until everything has completed. That means that from an async method, you can use: await Task . WhenAll ( tasks ); ... which means your method will continue when everything's completed, but you won't tie up a thread to just hang around until that time. 回答2 While JonSkeet's answer explains the difference in a typically excellent way there is another difference: exception handling . Task.WaitAll throws an AggregateException when any of

Net Core的API文档工具Swagger

若如初见. 提交于 2020-05-02 05:20:16
一、安装swagger   新建一个net core的api项目,通过NuGet安装Swashbuckle.AspNetCore。 二、注册swagger服务   在Startup.cs中注册Swagger生成器。 public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); // 注册Swagger生成器,定义一个和多个Swagger 文档 #region Swagger services.AddSwaggerGen(options => { options.SwaggerDoc( " v1 " , new Info { Title = " My API " , Version = " v1 " }); }); #endregion }   启用Swagger。 public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseHsts()

NetCore 3.0 中使用Swagger生成Api说明文档及升级报错原因

北城以北 提交于 2020-05-02 04:44:54
认识Swagger Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 作用: 接口的文档在线自动生成。 功能测试。 为什么使用Swagger作为REST APIs文档生成工具 Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。 Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。 Swagger 文件可以在许多不同的平台上从代码注释中自动生成。 Swagger 有一个强大的社区,里面有许多强悍的贡献者。 安装Nuget包搜索Swashbuckle.AspNetCore 因为是.NetCore3.0 ,所以一定要勾选包括预览发行版,安装最新预发行版 5.0.0-rc4,千万不要安装最新稳定版。稳定版会报错。 稳定版报错信息: 1 Some services are not able to be constructed (Error while validating the service descriptor ' ServiceType: 2 Swashbuckle.AspNetCore.Swagger.ISwaggerProvider

6D姿态估计从0单排——看论文的小鸡篇——Hashmod: A Hashing Method for Scalable 3D Object Detection

ε祈祈猫儿з 提交于 2020-04-30 21:12:26
To this end, we rely on an efficient representation of object views and employ hashing techniques to match these views against the input frame in a scalable way. Our approach to 3D object detection is based on 2D view-specific templates which cover the appearance of the objects over multiple viewpoints. Since viewpoints include the whole object, they can generally handle objects with poor visual features, however they have not been shown to scale well with the number of images so far . We apply hash functions to image descriptors computed over bounding boxes centered at each image location of

关于EasyPoi导出Excel

拥有回忆 提交于 2020-04-27 20:31:37
如果你觉得Easypoi不好用,喜欢用传统的poi,可以参考我的这篇博客: Springmvc导出Excel(maven) 当然了,万变不离其宗。Easypoi的底层原理还是poi。正如MyBatis Plus的原理还是MyBatis那套。只不过它们的共同点是封装起来。 关于Easypoi记得初次接触的时候,给我的感觉是看起来很简单很容易让人理解,而且文档也比较丰富,也是jeecg的开源项目下的子项目。 记得当初为了提高代码开发效率,去码云和github上游荡游荡,突然发现了一个叫jeecg的玩意,于是研究了下,这个研究不是特别深,只是将其项目跑起来,看看它有哪些组件,顺便看看源码,和玩玩它强大的插件式开发和easypoi。 jeecg中的easypoi的项目地址为:https://gitee.com/jeecg/jeasypoi jeecg中的easypoi的官方详细文档为:http://easypoi.mydoc.io/ 大家要牢记一个经济方面的格言:物质基础决定上层建筑。 对计算机专业的同志们而言,良好的计算机基础,是以后编程世界的驰骋飞扬的基石。 所以在校的同志们,一定要好好学习天天向上。 闲话就不多说了,下面进入正题。 一、导入依赖 <!-- easypoi导入导出excel --> <dependency> <groupId>cn.afterturn</groupId>

C# Winform WPF DeskBand 窗体嵌入任务栏,在任务栏显示文字

允我心安 提交于 2020-04-26 14:54:25
原文: C# Winform WPF DeskBand 窗体嵌入任务栏,在任务栏显示文字 最近写了个小程序,用于将固态硬盘的写入量等信息显示在任务栏,最开始使用Windows API也可以实现,但是当任务栏托盘增加的时候,会被遮盖,最终采用了DeskBand来实现,填了很多坑。 参考的GitHub地址: https://github.com/dsafa/CSDeskBand DeskBand相关代码如下: COLORREF: // This code snippet was used by SharpShell. // using System.Drawing; using System.Runtime.InteropServices; namespace MyDiskInfo.Interop { [StructLayout(LayoutKind.Sequential)] public struct COLORREF { public COLORREF(Color color) { Dword = ( uint )color.R + ((( uint )color.G) << 8 ) + ((( uint )color.B) << 16 ); } public uint Dword; public Color Color { get { return Color.FromArgb(

Java生鲜电商平台-商品基础业务架构设计-商品分类设计

爷,独闯天下 提交于 2020-04-24 15:43:45
Java生鲜电商平台-商品基础业务架构设计-商品分类设计 说明:我们搞过电商的人都可以体会到,搞生鲜电商是最复杂的,为什么复杂呢?我总结了有以下几个业务特性决定的: 1. 业务本身比较复杂。 2. 商品都是非标准化的商品。 3. 各种售后问题层出不穷. 4. 人心善变,各种变化. 好了,不多说废话了。我们开始聊下今天的商品分类的架构设计。 名称简介: 商品分类也叫做商品类目。核心的意义就是把商品按照某种分类区分开,方便客户寻找自己的商品。 要理解生鲜电商的商品分类,请先读懂以下对话: 1.客户: 你这个小白菜多少钱一斤呢?老板 2.老板:2.7元一斤,10元4斤. 3.客户:你这个小白菜是哪个产的呢? 4.老板:这个是襄阳的生产的,非常的甜,冬天下面条非常好吃,你看看,这个都是刚批发回来的,很新鲜. 5.客户: 好的,那老板你跟我装10斤吧。 6.老板:好的,稍等下就跟你装。 7.老板:装好了,请问你是支付宝还是微信支付,还是现金支付呢? 8.客户:我用支付宝吧,我来扫你。 9.老板:好的。 10.支付宝:支付宝喊话:支付宝到账10元。 11.老板:那你拿好,慢走。 12.客户:好的。 业务分析:上面是很简单的一句对话,我们从中需要理解以下几种设计架构: 1. 从第一句话:(1.客户: 你这个小白菜多少钱一斤呢?老板),客户是在选购商品,是通过肉眼来选择的

Advances and Open Problems in Federated Learning

老子叫甜甜 提交于 2020-04-24 07:03:37
挖个大坑,等有空了再回来填。心心念念的大综述呀(吐血三升)! 郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 项目地址: https://github.com/open-intelligence/federated-learning-chinese 具体内容参见项目地址,欢迎大家在项目的issue上提出问题!!! Abstract   联邦学习(FL)是一种机器学习环境,其中许多客户端(如移动设备或整个组织)在中央服务器(如服务提供商)的协调下协同训练模型,同时保持训练数据去中心化。FL体现了集中数据收集和最小化的原则,可以减轻传统的中心化机器学习和数据科学方法带来的许多系统隐私风险和成本。在FL研究爆炸式增长的推动下,本文讨论了近年来的进展,提出了大量的开放性问题和挑战。 Contents 1 Introduction   1.1 The Cross-Device Federated Learning Setting     1.1.1 The Lifecycle of a Model in Federated Learning     1.1.2 A Typical Federated Training Process   1.2 Federated Learning Research   1.3 Organization 2 Relaxing the Core

DLL/OCX文件的注册与数据执行保护DEP

蹲街弑〆低调 提交于 2020-04-21 20:45:58
注册/反注册dll或ocx文件时,无论是用regsvr32还是DllRegisterServer/DllUnregisterServer,可能会遇到【内存位置访问无效】的问题: 此时把操作系统的数据执行保护( Data Execution Prevention ,下称DEP)彻底关掉, 重启 ,应该就能解决问题。操作: NT6.x系统:运行 bcdedit / set nx alwaysoff NT5.x系统:修改 %systemdrive%\boot.ini 文件,将当前操作系统条目的/noexecute参数的值改为AlwaysOff,若没有则添加。若是多系统,要注意修改到正确的条目 本文主要是讨论,作为开发者,当需要在自己的程序中注册dll时(反注册的情况一样,下文只拿注册说事,其实适用于所有受DEP影响的问题),如何避免改动系统DEP,避免重启地把问题解决掉。其实这个问题的关键是, 执行注册的进程是否启用了DEP,启用就不能注册,关闭就能 ,跟系统DEP没有直接关系,但进程DEP受系统DEP的影响。 来自系统DEP的原因 系统DEP策略有4种,每种策略下对进程DEP的影响如下(注意, 64位程序总是启用DEP ,且不可禁用,不论系统DEP如何设置。所以下表和接下来说的都是32位程序的情况): 系统DEP策略 进程默认DEP 能否更改进程DEP OptIn