我尝试在 Web 服务中与 Unity 一起学习和使用 IoC,但我不知道如何或应该调用调用所有 registerType 方法的方法。
在伪代码中,我将尝试澄清我的问题。
[WebMethod]
public void DoSomething()
{
var obj = IoC.Resolve<ISomeInterface>();
obj.Container.DoSomething();
}
interface ISomeInterface
{
void DoSomething();
}
public class SomeClass : ISomeInterface
{
pulic void DoSomething()
{
//do something here
}
}
public static class IoC
{
public static IUnityContainer Container = new UnityContainer();
public static void Init()
{
container.RegisterType<ISomeInterface, SomeClass>();
}
}
在上面的示例中,我不知道应该如何或应该调用方法 Init()。我尝试在按照后续步骤创建的项目中执行此操作。我在 Visual Studio 2012 中创建了一个新的空 ASP.NET Web 应用程序。然后我向它添加了一个 Web 服务项,并且在 .asmx.cs 文件中是我的 Web 方法。Web 服务将由 JavaScript 中的 AJAX 调用。
我需要做什么才能让 web 服务在启动时调用 Init 方法?