c# - Swashbuckle.OData 中 OData 函数的复杂类型参数
问题描述
我有 OData 功能:
public class ItemsController : ODataController
{
[HttpGet]
public async Task<IHttpActionResult> SomeFunc([FromODataUri]SomethingDTO something)
{
return Ok(1);
}
}
东西DTO:
public class SomethingDTO
{
public int Name { get; set; }
}
和 ODataConfig:
public static class WebApiConfig
{
public static void Configure(HttpConfiguration config)
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EnableLowerCamelCase();
builder.EntitySet<Item>("Items");
var itemsEntityType = builder.EntitySet<Item>("Items").EntityType;
var func = itemsEntityType.Collection.Function("SomeFunc");
func.Parameter<SomethingDTO>("something");
func.Returns<int>();
config.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
}
}
这很好用,但是当我打开 swagger 页面时,应用程序会抛出异常:在 Swashbuckle.OData.dll 中发生了“System.ArgumentOutOfRangeException”类型的异常,但未在用户代码中处理 ParameterName:TypeKind
func.Parameter<SomethingDTO>("something");
当我从 OData 配置中删除此字符串时,Swagger 页面可以正常工作。但 OData 功能出现故障。
如何在 Swashbuckle.OData 中为 OData 函数定义复杂参数?
.NET 4.5.2
Microsoft.AspNet.OData 版本="6.0.0"
花花公子版本="5.6.0"
Swashbuckle.Core 版本="5.6.0"
Swashbuckle.OData 版本="3.5.0"
解决方案
推荐阅读
- flutter - Flutter Sliver AppBar 主色
- logistic-regression - SPSS:如何获得逻辑回归中系数的b标准误差±范围?
- mysql - 在 SQL 中获取访问过一个月所有 4 周并且访问过最少 5 天的用户计数
- ios - 阿尔法分支中的詹金斯不尊重 podfile 和 podfile.lock
- sql - 选择另一列中具有最大值但具有聚合 SUM 计算的列
- javascript - 使用 yup 使用条件逻辑验证 json 内容
- animation - 如何在动画中组合四元数轨道?
- python - 使用 sympy 计算二重积分
- sql - How to replace only 0 values in Oracle?
- android - Cannot navigate from one graph to another one