HTTP リクエストの終了時に autofac がオブジェクトを破棄しないことについて、以前ここで質問しました。私は今、より大きな問題を抱えていると思います.なぜなら、それが同じオブジェクトのリクエストツーリクエストを提供しているという証拠があるからです. 繰り返しますが、私はこちらの指示を使用しています。デリゲート構文を使用してオブジェクトを作成しているため、私のテストはもう少し複雑ですが、リクエストの有効期間にフラグを立てていると思います。Global.asax.cs:
protected void Application_Start(object sender, EventArgs e)
{
...
var builder = new Autofac.Builder.ContainerBuilder();
builder.Register<IDBConnectionSelector>(
(c) => new CachingDBConnections(ConstructorArgs...))
.HttpRequestScoped();
var container = builder.Build();
_containerProvider = new ContainerProvider(container);
}
public IContainerProvider ContainerProvider
{
get { return _containerProvider; }
}
static IContainerProvider _containerProvider;
ここでの私の意図は、IDBConnectionSelector を登録して、カスタム コンストラクターで作成された具象型の CachingDBConnections を取得することですが、HTTP 要求スコープを使用することです。
CachingDBConnections オブジェクトのいくつかのメソッドが後続のリクエストで失敗するため、リクエストごとに新しいものではなく、前回取得したものと同じものを取得していると思われます。
それは理にかなっていますか?私は何を間違っていますか?