【发布时间】:2011-12-12 08:19:02
【问题描述】:
所以我在尝试让我的 asmx webservice 使用依赖注入并使用 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 窗体应用程序上正常工作,但卡在了这个上。
【问题讨论】:
标签: dependencies inversion-of-control asmx code-injection