ASMX Dependency Injection и IoC

Итак, я застрял, пытаясь заставить мой веб-сервис asmx использовать инъекцию зависимостей и использовать IoC для этого. Я хочу, чтобы мой веб-сервис мог использовать мои внутренние службы бизнес-слоя. Веб-сервис будет использоваться внешним клиентом из другого домена и в основном будет использоваться для отправки и получения информации о таких сущностях, как заказы и клиенты.

Пример:

public class MyService : System.Web.Services.WebService
{
    [WebMethod]
    public string HelloWorld()
    {
        return new MyBusinessService().MyMethod();
    } 
}

public class MyBusinessService : IMyBusinessService
{
    public string MyMethod()
    {
        return "hello";
    }
}

Я хочу использовать инъекцию зависимостей, чтобы устранить необходимость "создания" новой службы, но не могу найти способ сделать это. Я могу заставить его работать, используя "бедный мужской DI", или, по крайней мере, я думаю, что он называется "бедным мужским".

вот так:

public class MyService : System.Web.Services.WebService
{
    private IMyBusinessService _myService;

    public MyService(IMyBusinessService myService)
    {
        _myService = myService;
    }

    public MyService() : this(new MyBusinessServie()) { }

    [WebMethod]
    public string HelloWorld()
    {
        return _myService.MyMethod();
    }
}

Но я просто не могу понять, как использовать IoC-контейнер для внедрения зависимостей, потому что я не могу заставить сервис работать без конструктора без параметров. Пожалуйста, будьте добры, я не опытный программист и только начал тестировать внедрение зависимостей и добился того, что оно отлично работает в моем приложении windows forms с structuremap, но застрял на этом.

19
задан Anders Wendt 3 October 2016 в 23:40
поделиться