2

StructureMapのInstanceScope.HttpSession機能を使用しようとしていますが、問題が発生しています。StructureMapでInstanceScope.HttpSessionを使用するにはどうすればよいですか?

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

だから私のクライアントコード(ASP.NET MVCコントローラ)に私のような何かを:私のRepositoryRegistryクラスは次のようになります

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

:私はテストのために使用している次のような方法があります次のようになります。

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

+0

あなたは私の答えを試しましたか?私はこの問題を抱えておらず、主な違いは私の設定がglobal.asax – eglasius

答えて

1

ObjectFactory.Configureをグローバルasaxに移動します。オブジェクトが要求されるたびに、構造マップを再構成し続けることは想定されていません。

関連する問題