2010-01-06 3 views
2

나는 현재 고정 전화와 같은가변적 인 구성 내에서 다양한 CurrentSessionContexts를 사용할 수 있습니까?

SessionConfiguration.GetSessionConfiguration(); 

를 통해 내 세션 구성을 설정하고있어 방법 위의 반환 구성된 ISessionFactory :

public static ISessionFactory GetSessionConfiguration() 
{ 
    return Fluently.Configure() 
     .Database(MsSqlConfiguration 
      .MsSql2005 
      .ConnectionString(/*...*/) 
      .ShowSql() 
      .CurrentSessionContext<WebSessionContext>()) 
     .Mappings(/*etc*/) 
     .BuildSessionFactory(); 
} 

내가으로 찾고 있어요 부분은 "의 CurrentSessionContext < > ". 그것을 호출하는 응용 프로그램을 기반으로 설정할 수 싶습니다. 대부분의 경우이 라이브러리는 웹 응용 프로그램을 통해 액세스되므로 위의 내용이 정상적으로 작동합니다. 그러나 최근에는 CallSessionContext가 더 적합한 것으로 보이는 콘솔 응용 프로그램에서이 계층을 사용할 필요가있었습니다.

ICurrentSessionContext를 제 위치에서 사용하도록 전달할 수 있습니까?

public static ISessionFactory GetSessionConfiguration<ICurrentSessionContext> 

또는

public static ISessionFactory GetSessionConfiguration<TSessionContext> 

하지만 운이 없었어요 아직 :

나는의 라인을 따라 뭔가를 시도했습니다.

모든 도움을 주시면 대단히 감사하겠습니다.

답변

2

"where constraints"를 사용하면 가능합니다.

즉 :

SessionConfiguration.GetSessionConfiguration<CallSessionContext>(); 
:

라는
ISessionFactory GetSessionConfiguration<T> where T : ICurrentSessionContext 

, 이것은 당신이 다음을 수행 할 수 있습니다

관련 문제