猿问

尝试了解 IoC(使用 Autofac)中的生命周期范围是什么意思?

起初我确实保密地假设我可以理解它,但通过一些简单的例子Autofac,似乎我可能理解错了,这是我尝试过的代码:


//register the service

autofacBuilder.RegisterType<MyService>()

              .As<IMyService>().InstancePerLifetimeScope();

//testing code

void _test1()

{

   var myService = autofacContainer.Resolve<IMyService>();

}

void _test2()

{

    _test1();

    var myService = autofacContainer.Resolve<IMyService>();

}

通过运行测试它_test2(),您可以简单地检查在 2 个方法中解析的实例。


所以通过上面的代码,我理解myServicein_test1和myServicein_test2应该是不同的。因为我觉得的寿命范围myService中_test1应该只是在方法而寿命范围myService中_test2应该是_test2为好。所以我们这里有2 个不同的作用域,但不知何故解析的实例myService是相同的。


所以你能向我解释这个问题lifetime scope 吗,这里到底是什么意思?在同一个班级里?或者更大的东西?


温温酱
浏览 738回答 1
1回答
随时随地看视频慕课网APP
我要回答