为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
MYYA 2022-07-10 10:21:51
在我的名为“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 问题中添加了大量细节,但这里是正在发生的事情的简明版本。
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

看起来你应用了不好的做法。我会将 IMobileUserServie 注册为单例。并正式解决。无论如何,对于您的问题,请尝试创建一个新范围并在您的自定义范围中解决您的界面。虽然我不推荐这个,你可以使用下面的代码


protected override void Application_BeginRequest(object sender, EventArgs e)

{

    base.Application_BeginRequest(sender, e);

    var iocResolver = Ks.Dependency.IocManager.Instance.Resolve<IIocResolver>();

    var scope = iocResolver.CreateScope();

    var service = scope.Resolve<Service.MobileUser.IMobileUserService>();

}


查看完整回答
反对 回复 2022-07-10
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信