EnableSwagger混乱

时间:2016-08-23 15:43:10

标签: c# lambda owin swagger

我试图了解Swagger& amp;来自visual studio的Owin模板。

我在开始时基本上卡住了:

var httpConfiguration = new HttpConfiguration();
// Configure Swagger UI
httpConfiguration
    .EnableSwagger(c => c.SingleApiVersion("v1", "Test API"))
        .EnableSwaggerUi();

我感到困惑的是lambda函数,SingleApiVersion似乎来自哪里。

这是如何组合在一起的?

我可以看到EnableSwagger扩展方法有两个重载:

(Action<SwaggerDocsConfig> configure = null) //(this is also confusing) and
(string routeTemplate, Action<SwaggerDocsConfig> configure = null)

所以我可以看到SingleApiVersion来自SwaggerDocsConfig 但是如何!

谢谢,对不起基本问题,我想我已经让自己头疼,试图理解这一点。

1 个答案:

答案 0 :(得分:0)

通过将SwaggerDocsConfig作为委托作为Action<T>传递给Action<SwaggerDocsConfig>,可以设置子成员SingleApiVersion,因为它不返回任何值。 SwaggerDocsConfig的实例在EnableSwagger类的HttpConfigurationExtensions方法的构造函数中实例化。