我希望有一个特定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
?我不太确定如何解决问题,任何帮助将不胜感激。
非常感谢!
不可能从您的控制器继承以保持属性并直接更改主体(至少不是以干净的方式)。
最好的选择是添加一个中间层(抽象类)并在控制器中使用它。比其他用户可以用自己的逻辑实现抽象类(不是直接控制器)。