以编程方式创建控制器 [英] Create a controller programmatically

查看:25
本文介绍了以编程方式创建控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

已经决定我们应该有一个跨不同应用程序的通用上载http API。我有一个要在多个WebAPI项目中使用的文件上载控制器。

我的上传控制器如下所示

namespace MyNamespace
{
    [Authorize("PolicyName")]
    [Route("Upload")]
    public class UploadController : Controller
    {
        [HttpPost]
        [Route("Upload")]
        public async Task<IActionResult> Upload(UploadModel model)
        {
             // impl..
             return Ok();
        }
    }
}

我天真地以为我只是把它解压缩到一个类库中,我就可以注册它了,但是我找不到方法?

无论如何,我认为这不是正确的使用方法。我希望能够配置授权策略名称,并可能配置路由。所以我在想,也许我想构建控制器及其路由,并授权设置和注册一些方式?

我对API的想法是这样的..

((IApplicationBuilder)app).UseUploadController(config => {
    config.PolicyName = "Whatever",
    config.UploadRoute = "UploadStuff"
});

..。这将创建并注册控制器。不过,我不知道从何说起。我完全不知道控制器是如何发现的,也不知道它们是否可以编程注册。

有人有什么可以参考的指针或库吗?

推荐答案

您可以将控制器放在引用的类库中(根据需要),然后在任何项目中,您可以根据需要从该控制器继承。如果您不需要任何其他功能,您可以将子类留空,但是如果您想要添加一些东西,您可以很容易地扩展它。 此外,您可以使用任何其他控制器名称,并且可以设置不同的路由、授权等。

这篇关于以编程方式创建控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆