Итак, я застрял, пытаясь заставить мой веб-сервис 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, но застрял на этом.