2014-10-29 2 views
0

userId를 dataAccess 클래스에 전달하여 감사 작업을 수행해야하며이를 unitofwork 클래스에 주입하려고합니다. 세션. SessionAs<>을 사용하여 서비스 클래스 내부에서 세션을 가져올 수 있지만 컨테이너에 unitofwork를 등록 할 때 userId를 전달할 수 있도록 Apphost에서 세션을 가져 오는 방법을 파악할 수 없습니다.AppHost 내부의 serviceStack 세션에 액세스하여 selfHosted 응용 프로그램의 ioc 삽입에 대한 userId를 얻습니다.

답변

0

세션은 들어오는 HTTP 요청에 종속적이므로 IOC에서 정적으로 사용할 수 없습니다 (들어오는 요청의 요청 컨텍스트 내에서 런타임에만). 권장되지 침묵 ASP.NET에서 호스팅 할 때

public class MyServices : Service 
{ 
    public IDependency Dependency { get; set; } 

    public object Any(Request request) 
    { 
     Dependency.Exec(request, base.SessionAs<CustomUserSession>()); 
    } 
} 

, 당신이 할 수

은 결과적으로 그것의 필요로 할 때 대신, 당신의 의존성에 예를 전달해야하는 종속성으로 주입 할 수 없습니다 현재 요청 컨텍스트에 액세스하여 세션을 얻을 :

var session = HttpContext.Current.ToRequest().GetSession(); 

참고 : HttpContext.Current 만 HTTP 요청의 컨텍스트에서 사용할 수 있습니다.

+0

빠른 응답을 주셔서 감사합니다. 그 말이 완벽합니다. 나는 글로벌 요청 필터에서 세션을 얻는 것을 고려하고 거기에서 passind했지만 제안 된 방법이 더 나은 옵션 인 것 같다. – rakesh

관련 문제