Ninject inject a service interface in a web service

帅比萌擦擦* 提交于 2019-11-28 09:04:40

问题


I have a web service in my project that I use to return json data to ajax calls.

Injecting my ClientService works fine on regular pages but how do I get it to work in the Web Service?

NinjectWebCommon.cs:

 private static void RegisterServices(IKernel kernel)
        {
            kernel.Bind<IClientService>().To<ClientService>();
        }  

Default.aspx.cs: works!

public partial class _Default : System.Web.UI.Page
    {
 [Inject]
        public IClientService clientService { get; set; } 

MyWebservice.asmx: NullReferenceException (clientService is null)

 public class MyWebService: System.Web.Services.WebService
    {     
        [Inject]
        public IClientService clientService { get; set; } 


 [WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public MyObject GetClients(int id)
        {
            var list = clientService.GetClients(id);

回答1:


I have solved this problem. I changed MyWebService class to derive from Ninject.Web.WebServiceBase:

public class MyWebService: WebServiceBase


来源:https://stackoverflow.com/questions/16395067/ninject-inject-a-service-interface-in-a-web-service

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!