2016-08-23 138 views
0

我陷入困境,試圖從visual studio中瞭解Swagger & Owin模板。EnableSwagger混淆

我基本上停留在一開始:

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

通過使用SwaggerDocsConfig作爲傳遞給Action<T>的代理人Action<SwaggerDocsConfig>,可以設置子成員SingleApiVersion,因爲它不返回任何值。 SwaggerDocsConfig的實例在HttpConfigurationExtensions類的EnableSwagger方法的構造方法中實例化。