Ninject w的一个MVC3 / ASMX Web服务/ Ninject 3环境(Ninject

2019-06-28 05:28发布

我正在寻找纳入一个经典的ASMX Web服务进入我的MVC3环境的最佳方法。 我想可以在两者之间共享内核/容器。

在ASP.NET Web表单过去我能够使用以下命令:

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class Service : WebServiceBase
{
    [Inject]
    public IContextProvider ContextProvider { get; set; }
...

此所使用的较旧的Ninject.Web到共享使用已WebServiceBase,PageBase,等等等等之间共享的KernelContainer内核

现在,我已经使用Ninject.Web.MVC有一个MVC3应用程序,我需要一个较旧的Web服务在同一空间的功能,使用相同的内核/绑定。 我一直没能找到上得到一个设置这样的启动和运行的任何信息。

没有人有任何想法,样品或职位,他们可以指向我(除了不使用ASMX Web服务)?

Answer 1:

MVC框架支持与Ninject为MVC集成DependencyResolver。 虽然它不是可以定义为ASMX web服务的定制工厂,你可以做到以下几点:

public class Service : WebService
{
  public IContextProvider ContextProvider {get;set;}

  public Service()
  {
    ContextProvider = DependencyResolver.Current.GetService<IContextProvider>();
  }
}

虽然你不能建设服务的过程中注入依赖,你可以在构造函数中自己解决这些问题。



文章来源: Ninject w/ ASMX web service in a MVC3/Ninject 3 environment