我在 asp.net webforms 站点中的请求中持续存在的 autofac 的生命周期范围存在问题。
因此,我在 auto fac 中注册了一家工厂:
builder.RegisterType<DoSomethingFactory>().As<IDoSomethingFactory>().InstancePerLifetimeScope();
这当然发生在 app_start 中。
然后我有一个简单的用户控件调用这个工厂的方法
IDoSomethingFactory doSomethingFactory = Resolver.Resolve<IDoSomethingFactory>();
Number.Text = doSomethingFactory.DoSomething().ToString();
我在一个页面上有这个控件的两个实例,所以 DoSomething 方法应该被调用两次并且工厂也应该被解析两次。
第一次运行该站点时,DoSomethingFactory 的构造函数被触发,随后对 DoSomething 方法进行了 2 次调用。第二个请求导致对 DoSomething 方法的 2 次调用,而没有对工厂进行全新的更新。
如果我在注册时取出 InstancePerLifetimeScope,那么每次解析都会实例化工厂。我看到的大多数答案都是关于 MVC 站点的。我也有一个 MVC 站点,并以相同的方式使用它,它按要求工作,因此需要询问 asp.net webforms
需要明确的是,我希望每个请求都实例化一次工厂。欢迎任何帮助或想法。
非常感谢
将要