2011-08-01 4 views
1

IUnitOfWork 인터페이스의 인스턴스를 등록하기 위해 윈저를 사용하고 있습니다. UnitOfWorkContainer.Current은 IUnitOfWork의 인스턴스를 반환하는 정적 메서드입니다.에 대한 윈저 구성 요소가 일시적으로 작동하지 않습니다.

container.Register(Component.For<IUnitOfWork>() 
      .Instance(UnitOfWorkContainer.Current) 
       .LifeStyle.Transient); 

문제는 UnitOfWorkContainer.Current입니다. 당신은 윈저에게 기존의 인스턴스를 제공하고 있습니다

답변

4

You're doing it wrong

. 따라서 그것을 생성하지 않습니다. 인스턴스를 재사용합니다. 즉

, 당신의 코드는 동등한 다시 작성할 수 있습니다 :

var theOneAndOnly = UnitOfWorkContainer.Current; 
container.Register(Component.For<IUnitOfWork>() 
      .Instance(theOneAndOnly) 
       .LifeStyle.Transient); 

내가 무엇을 당신이 정말로 의미하는 것은 생각 :

container.Register(Component.For<IUnitOfWork>() 
      .UsingFactoryMethod(() => UnitOfWorkContainer.Current) 
       .LifeStyle.Transient); 
관련 문제