强制执行A​​PI控制器

时间:2019-03-19 16:06:02

标签: c# rest api owin

我希望有一个针对特定API控制器的实现,该实现将与Microsoft.AspNetCore.Owin一起实现,以创建具有.net核心的rest api。

我想给其他人实现自己的类似控制器的选择,但对实现的条件也有一些限制。例如:

[RoutePrefix("calculator")]
public class CalculatorController
{
    [HttpGet]
    [Route("add/{int1}/{int2}")]
    public int AddItems(int int1, int int2)
    {
        return int1 + int2;
    }

    [HttpGet]
    [Route("multiply/{int1}/{int2}")]
    public int MultiplyItems(int int1, int int2)
    {
        return int1 * int2;
    }
}

我想我可以创建一个具有两个方法ICanCalculateAddItems的接口(例如MultiplyItems),但是有一种方法可以强制RouteHttpMethod个属性?

基本上,我想让其他用户可以选择更改api端点的主体,而无需更改RouteHttpMethod属性。

也许替代方法是创建一些abstract class,其方法为virtual?我不太确定如何解决该问题,我们将不胜感激。

非常感谢!

1 个答案:

答案 0 :(得分:2)

不可能从您的控制器继承来保留属性并仅直接更改主体(至少不是干净的方式)。

最好的选择是添加一个中间层(抽象类)并在控制器中使用它。比其他用户可以使用自己的逻辑来实现抽象类(而不是直接实现控制器)。