起初我确实保密地假设我可以理解它,但通过一些简单的例子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 吗,这里到底是什么意思?在同一个班级里?或者更大的东西?
相关分类