微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用Swagger命名AutoRest生成的方法名称

我正在玩 AutoRestSwagger项目.我的Web API控制器有一个名为GetAllAsync的方法.当我为服务生成客户端时,客户端有一个接口IResourcesOperations,其中Resources是控制器的名称.

该接口有一个名为GetAllAsyncWithHttpMessagesAsync的方法.然后是一个名为ResourcesOperationsExtensions的静态类,它定义了一个名为GetAllAsync的方法一个名为GetAllAsyncAsync的方法.第一个实际上是从线程池(Task.Factory.StartNew)运行第二个新线程.有人知道原因吗?

我发现我可以用属性装饰我的控制器动作方法

[SwaggerOperation("GetResources")]

这将在客户端类上生成一个名为GetResourcesWithHttpMessagesAsync的方法,并从接口和扩展方法类中删除此Web API操作的所有方法.

现在我的问题是,为什么这三种方法生成

有没有办法使用名为GetResources的方法生成客户端(即摆脱WithHttpMessagesAsync后缀)甚至GetAllAsync?

解决方法

AutoRest(至少是更新版本)生成带有后缀Extensions的类.这些类包含代理接口上的扩展方法,允许您使用缩短的方法名称调用方法,就像您之后使用的那样.

只需添加一个

@using TheNameSpace.OfYour.Client.Extensions

到您需要访问这些缩短的方法名称的任何类.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐