gpt4 book ai didi

c# - 在 Startup.cs 中使用 DI 解析服务

转载 作者:太空狗 更新时间:2023-10-30 01:16:48 24 4
gpt4 key购买 nike

我用过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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com