0
我使用委托工厂使用静态.Create()函数创建对象,因为该对象的创建有点沉重并且不属于在构造函数中。此对象(UserToken)用于每个Mvc控制器。为什么AutoFac委托工厂注册InstancePerRequest在每次注入类型时都会调用
我注意到在我的代码示例中,当使用AutoFac委托函数注册以创建UserToken时,每次请求都会调用UserToken.Create()多次。我希望它只能在每个请求中调用一次,并将生成的UserToken存储并由构建器重新使用。我在这里错过了什么?我只希望每次请求调用一次UserToken.Create。
builder.Register<Func<HttpContextBase, IUnitOfWork, UserAccountToken>>(
c => {
var db = c.Resolve<IUnitOfWork>();
var hc = c.Resolve<HttpContextBase>();
return (context, database) => { return UserAccountToken.Create(hc, db); };
}).InstancePerRequest();
builder.Register<UserAccountToken>(
c => {
var db = c.Resolve<IUnitOfWork>();
var hc = c.Resolve<HttpContextBase>();
return UserAccountToken.Create(hc, db);
}).As<IUserAccountToken>().InstancePerRequest();
好吧,我想,现在,将尽快更新 –
这是否解决您的问题@MarcusCobb? –