我希望有一个针对特定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;
}
}
我想我可以创建一个具有两个方法ICanCalculate
和AddItems
的接口(例如MultiplyItems
),但是有一种方法可以强制Route
和HttpMethod
个属性?
基本上,我想让其他用户可以选择更改api端点的主体,而无需更改Route
或HttpMethod
属性。
也许替代方法是创建一些abstract class
,其方法为virtual
?我不太确定如何解决该问题,我们将不胜感激。
非常感谢!
答案 0 :(得分:2)
不可能从您的控制器继承来保留属性并仅直接更改主体(至少不是干净的方式)。
最好的选择是添加一个中间层(抽象类)并在控制器中使用它。比其他用户可以使用自己的逻辑来实现抽象类(而不是直接实现控制器)。