2

세션 속성이있는 세션 관리자 클래스가 있습니다. 이를 생성자 매개 변수로 다른 클래스에 전달해야합니다. castle windsor 설치 프로그램을 어떻게 구성해야합니까?성 Windsor IoC inject into 속성 생성자

public interface ISessionManager 
{ 
    ISession CurrentSession { get; set; } 
} 

public class SessionManager : ISessionManager 
{ 
    private ISession _session; 
    public ISession CurrentSession 
    { 
     get { return _session ?? (_session = NHibernateHelper.OpenSession()); } 
     set { _session = value; } 
    } 
} 

public interface IRequest 
{ 
    TR Execute<TR>(IExecuteManager<TR> executeManager); 
} 

public class Request: IRequest 
{ 
    private readonly ISession _session; 

    public Request(ISession session) 
    { 
     _session = session; 
    } 
    public TR Execute<TR>(IExecuteManager<TR> executeManager) 
    { 
     return executeManager.Request(_session); 
    } 
} 

나는 윈저 문서 성 주변에서 응원했습니다하지만 난 그냥 그것을 찾을 수 있습니다 확신하기 때문에 내가 뭔가를 잘못 건 검색하거나 실종해야합니다.

Session 클래스의 생성자에 SessionManager.CurrentSession을 삽입하도록 성 윈저 설치 프로그램을 어떻게 구성해야합니까? (윈저 문서를 수정하는 참조 또는 예제도 완전히 괜찮음)

답변

1
container.Register(Component.For<ISession>() 
    .UsingFactoryMethod(() => container 
     .Resolve<ISessionManager>().CurrentSession) 
    .LifeStyle.Transient); 
+0

ISession을 ISession으로 변경했으며 모두 좋았습니다. 감사! 내가 지금까지 어떤 문서를 참조했는지에 관해서는 완전히 잘못된 경로에 있었지만 지금은 곧바로 수정되었습니다. –

관련 문제