我相信 Singleton 可以满足您的要求,但它没有在 WebApi 中实现。幸运的是,还有另一种选择:未绑定函数。只需遵循以下示例:http ://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ODataFunctionSample/ 。
ProductsController中有一个方法:
[HttpGet]
[ODataRoute("GetSalesTaxRate(state={state})")]
public IHttpActionResult GetSalesTaxRate([FromODataUri] string state)
{
return Ok(GetRate(state));
}
它是通过以下 URL 请求的:~/service-prefix/GetSalesTaxReate(state='WA') 并且非常接近您的方案。您唯一需要做的就是删除函数的参数:
[HttpGet]
[ODataRoute("GetStats()")]
public IHttpActionResult GetStats()
{
return Ok(new Stats());
}
现在您可以请求 ~/service-prefix/GetStats()。