我在爲Web API 2.2中的模型設置依賴注入時遇到問題。具體來說,我目前正在執行此操作的方式會導致任何「InstancePerLifetimeScope」依賴項表現爲「SingleInstance」依賴項。Web API模型中的Autofac InstancePerLifetimeScope
這裏就是我目前與我JSON.NET解析器做:
public class AutofacContractResolver : DefaultContractResolver
{
private readonly IContainer _container;
public AutofacContractResolver(IContainer container)
{
_container = container;
}
protected override JsonObjectContract CreateObjectContract(Type objectType)
{
JsonObjectContract contract = base.CreateObjectContract(objectType);
if (_container.IsRegistered(objectType))
contract.DefaultCreator =() => _container.Resolve(objectType);
return contract;
}
}
發生了什麼事是_container.Resolve(objectType)
解決同一個實例爲每個請求。這泄露了破壞,因爲我現在有兩個不同的會話運行服務,其中一個已經過時。
我認爲Resolve調用發生在創建請求範圍之前。這將解釋上述行爲,但我不知道如何解決這個問題。
你可以顯示代碼在哪裏設置合約解析程序,以便它被使用? –