C# 标记WebApi方法';s参数已过时/不推荐用于虚张声势/虚张声势

C# 标记WebApi方法';s参数已过时/不推荐用于虚张声势/虚张声势,c#,swashbuckle,webapi,C#,Swashbuckle,Webapi,根据我对的理解,可以将参数标记为已过时: 不推荐使用的参数 使用deprecated:true将参数标记为已弃用 - in: query name: format required: true schema: type: string enum: [json, xml, yaml] deprecated: true descripti

根据我对的理解,可以将参数标记为已过时:

不推荐使用的参数 使用
deprecated:true
将参数标记为已弃用

        - in: query
          name: format
          required: true
          schema:
            type: string
            enum: [json, xml, yaml]
          deprecated: true
          description: Deprecated, use the appropriate `Accept` header instead.```
如何让Swashbuckle为参数生成此参数

为什么? 我有一个控制器方法,如下所示:

[HttpGet]
公共异步任务执行(bool?someName)
{
}
我想更改querystring参数名,同时暂时保持向后兼容,所以 我想做一些类似的事情:

[HttpGet]
公共异步任务执行([过时(“改用someNewName”)]bool?someName,bool?someNewName)
{
someNewName=someNewName??someName;
}

但是,
过时
不能应用于参数。我认为,
swashback.AspNetCore.Annotations
可能是找到这种功能的地方,但它似乎没有。

您没有将参数标记为过时,如果某个参数过时,整个方法就会过时。您需要声明一个带有新方法签名的新方法,并将旧方法标记为过时。像这样

[HttpGet]
[过时(“改为使用带bool?someNewName的Execute。”)]
公共异步任务执行(bool?someName)
{
}
[HttpGet]
公共异步任务执行(bool?someNewName)
{
}
如果只更改了参数的名称,则可以使用
Bind
属性将URI元素绑定到不同名称的变量,如下所示:

[HttpGet]
公共异步任务执行([Bind(Prefix=“someNewName”)]bool?someName)
{
}

这将允许您继续使用相同的方法,而不必强制更改所有客户机。但是,如果更改的不仅仅是参数的名称,例如类型,则需要一个新方法

是否尝试将该方法标记为过时,而不是参数?