小编Joh*_*ebs的帖子

使用Ninject过滤构造函数注入

我试图找到一种方法来使用Ninject将构造函数依赖注入到过滤器中.我发现许多文章描述了属性注入,现在建议不要这样做,但其余文章涉及到工厂,定位器,全局包装器或存根属性的复杂设置.

使用MVC允许你覆盖它的几乎任何操作部分,我认为这只是一个创建自己的过滤器提供程序的情况,就像你创建自己的依赖项解析器一样.

什么是现在正确的注射方式,或者如果你使用某些类型的过滤器与其他过滤器变得更容易?

 public class UserValidationAttribute : ActionFilterAttribute
 {
    private IRepository repository;

    public UserValidationAttribute(IRepository repository)
    {
        this.repository = repository;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc ninject

11
推荐指数
2
解决办法
3464
查看次数

传回多个服务uris

我创建了一个asp.net web api 2控制器来管理逻辑资产.像往常一样,帖子创建它并将uri返回到资源,删除删除它,但我有2个put来对资产执行单独的操作,所以我的代码如下所示:

public class Controller : ApiController
{        
    public IHttpActionResult Post(Stuff stuff)
    {
        var id = CreateNewStuff(stuff);

        return CreatedAtRoute("DefaultApi", new { id = this.id }, id);
    }   

    [HttpPut]
    public IHttpActionResult ActionA(int id, ActionAStuff stuff)
    {    
        // Perform action A

        return Ok();
    }   

    [HttpPut]
    public IHttpActionResult ActionB(int id, ActionBStuff stuff)
    {    
        // Perform action B

        return Ok();
    }   

    public IHttpActionResult Delete(int id)
    {
        // Delete the asset

        return Ok();
    }  
}
Run Code Online (Sandbox Code Playgroud)

为了让路由理解这一点,我的路由规则是(包括默认规则):

config.Routes.MapHttpRoute(name: "ActionApi", routeTemplate: "api/{controller}/{action}/{id}");
config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-web-api

7
推荐指数
1
解决办法
140
查看次数

标签 统计

asp.net-mvc ×2

asp.net-web-api ×1

c# ×1

ninject ×1