如何使用Ninject.Web.Common.OwinHost 3.3.0?

时间:2018-03-14 13:49:01

标签: c# asp.net-web-api owin ninject

谁能告诉我Ninject.Web.Common.OwinHost?我使用本手册https://github.com/ninject/Ninject.Web.Common/wiki/Setting-up-a-OWIN-WebApi-application,但看起来已经过时,因为UseNinjectWebApi方法不存在。

我试图这样做:

    public void Configuration(IAppBuilder appBuilder)
    {
        // Configure Web API for self-host. 
        var config = new HttpConfiguration();

        config.MapHttpAttributeRoutes();
        WebServiceConfig.ConfigureRoutes(appBuilder);

        appBuilder.UseNinjectMiddleware(CreateKernel);
        appBuilder.UseWebApi(config);
    }

    private static StandardKernel CreateKernel()
    {
        var kernel = new StandardKernel();
        kernel.Load(Assembly.GetExecutingAssembly());
        kernel.Bind<IPropertyRepository>().To<PropertyRepository>().InSingletonScope();

        return kernel;
    }

但是当我调用我的API控制器方法时,我收到一条消息,默认构造函数不存在。

public class PropertyController : ApiController
{
    private readonly IPropertyRepository _propertyRepository;

    public PropertyController(IPropertyRepository propertyRepository)
    {
        _propertyRepository = propertyRepository;
    }

    [Route("properties")]
    [HttpPost]
    [LoggerTrace]
    public IHttpActionResult AddProperty([FromBody] PropertyDto propertyDto)
    {
        return Ok();
    }
}

1 个答案:

答案 0 :(得分:0)

手动https://github.com/ninject/Ninject.Web.Common/wiki/Setting-up-a-OWIN-WebApi-application是实际的。我只安装了Ninject.Web.Common包,并且需要安装包含UseNinjectWebApi方法的附加Ninject.Web.WebApi包。