2

StructureMap の InstanceScope.HttpSession 機能を使用しようとしていますが、問題が発生しています。テストに使用している次の方法があります。

public static class StructureMapTest {
    public static T Get<T>() {
        ObjectFactory.Configure(x => x.AddRegistry(new RepositoryRegistry()));
        return ObjectFactory.GetInstance<T>();
    }
}

私の RepositoryRegistry クラスは次のようになります。

public class RepositoryRegistry : Registry {
    public RepositoryRegistry() {
        ForRequestedType<IClientRepository>()
            .CacheBy(InstanceScope.HttpSession)
            .TheDefault.Is.OfConcreteType<ClientRepository>();
    }
}

したがって、クライアント コード (ASP.NET MVC コントローラー) では、次のようなことを行います。

public ActionResult InjectionTest() {
    return Content(DataProvider.Clients.CreatedDate.ToString());
}

そして、同じセッションからでもこのコントローラーを呼び出すたびに、毎回新しいインスタンスを取得します。ここで何が間違っていますか?

4

1 に答える 1