“全局”解析服务不再导致属性注入

在我的名为“Ks”的 mvc 项目的 asp 样板中


调用 webapi、ioc 将 KsSession 解析为派生类的相关实例,如此处所述


但是,当我尝试在没有注入但“全局”的情况下解决名为 MobileUserService 的服务时,问题就开始了,如下所示。从第二次调用 KsSession 不再解决。它发生从构造函数到 NullKsSession 的属性集调用,但没有更多的属性注入。


在Global.asax:


protected override void Application_BeginRequest(object sender, EventArgs e)

{

    base.Application_BeginRequest(sender, e);

    var service = Ks.Dependency.IocManager.Instance.Resolve<Service.MobileUser.IMobileUserService>();

}

我的问题是为什么会发生这种情况,这样使用服务不合适吗?


注意我在github 问题中添加了大量细节,但这里是正在发生的事情的简明版本。


MYYA
浏览 87回答 1
1回答

森林海

看起来你应用了不好的做法。我会将 IMobileUserServie 注册为单例。并正式解决。无论如何,对于您的问题,请尝试创建一个新范围并在您的自定义范围中解决您的界面。虽然我不推荐这个,你可以使用下面的代码protected override void Application_BeginRequest(object sender, EventArgs e){&nbsp; &nbsp; base.Application_BeginRequest(sender, e);&nbsp; &nbsp; var iocResolver = Ks.Dependency.IocManager.Instance.Resolve<IIocResolver>();&nbsp; &nbsp; var scope = iocResolver.CreateScope();&nbsp; &nbsp; var service = scope.Resolve<Service.MobileUser.IMobileUserService>();}
打开App,查看更多内容
随时随地看视频慕课网APP