我用过autofac,mvc 4.0。 我已经在我的 mvc 4.0 应用程序的 Application_Start 中注册了接口(interface)和模块。 我还使用了属性自动连接,例如
protected void Application_Start()
{
//Other codes...
builder.RegisterType<Service>()
.As<IService>()
.InstancePerLifetimeScope()
.PropertiesAutowired());
builder.RegisterControllers(typeof (MvcApplication).Assembly)
.PropertiesAutowired();
...
}
但是在启动类中没有解析依赖,对象一直为null。
public class Startup
{
public IService MyService { get; set; }
public void Configuration(IAppBuilder app)
{
MyService.SomeMetod(3, "");
}
}
在上面的代码中,我期望 MyService 是一个对象,但事实并非如此,它总是空的,我是不是做错了什么请帮忙。
请注意 di 是在 Controller 中工作的,它不只在启动类中工作!
最佳答案
我原以为 AutoFac 会像在 Controller 类中那样自动解析依赖关系,但使用手动解析已解决,如下所示:
var myService = (IService)DependencyResolver.Current.GetService(typeof(IService ));
关于c# - 在 Startup.cs 中使用 DI 解析服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33995197/