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? –