2011-07-05 4 views
1

현재 편안한 WCF 프로젝트를 만들고 있는데 현재 요청과 현재 찾은 모든 예제에 의해 실행되는 메서드를 가져와야합니다. 요청 헤더 또는 엔드 포인트 Dispatcher에서 조치 이름을 입력하십시오. 그러나 나는 이것들에 접근 할 수 없다. 내가 구성된 엔드 포인트가 없기 때문이라고 가정합니다. 대신 REST-ful URL을 얻기 위해 라우팅 모듈을 사용하고 있습니다. 예를 들어, 다음은 내 Gobal.asax.cs에 정의되어있다 : 나는 권한 부여 관리자에서이 정보를 얻으려고WCF - 라우팅 모듈을 사용하는 동안 일치하는 경로 가져 오기

RouteTable.Routes.Add(new ServiceRoute("authentication", new MavizonWebServiceHostFactory(), typeof(AuthenticationService))); 
RouteTable.Routes.Add(new ServiceRoute("offers", new MavizonWebServiceHostFactory(), typeof(OfferService))); 
RouteTable.Routes.Add(new ServiceRoute("settings", new MavizonWebServiceHostFactory(), typeof(SettingsService))); 
RouteTable.Routes.Add(new ServiceRoute("user/cars", new MavizonWebServiceHostFactory(), typeof(CarService))); 
RouteTable.Routes.Add(new ServiceRoute("user/notifications", new MavizonWebServiceHostFactory(), typeof(NotificationService))); 
RouteTable.Routes.Add(new ServiceRoute("user", new MavizonWebServiceHostFactory(), typeof(UserService))); 
RouteTable.Routes.Add(new ServiceRoute("version", new MavizonWebServiceHostFactory(), typeof(MetaService))); 

그래서 나는이 정보를 얻기 위해 OperationContext를 사용하는 것을 시도하고있다.

도움을 주시면 대단히 감사하겠습니다. 감사! :-)

업데이트

나는 ServiceAuthorizationManager에서 다음 호출을 사용하여 시도 :

System.ServiceModel.OperationContext.Current.IncomingMessageProperties["HttpOperationName"] as string; 

그러나 아무것도 반환되지 않았습니다. 그러나, 내가 이것을 내 봉사 방법으로 부르면 나는 그 봉사의 이름을 받았다. 이것은 메소드가 호출 될 시점에서 결정이 내려지지 않았 음을 의미합니다.

새로운 질문은 다음과 같습니다. 어떤 서비스 메소드가 호출되는지에 따라 달라지는 사용자 정의 코드를 주입하기 위해 확장 성 포인트를 사용해야하거나 라이프 사이클에서 조기에 라우트 일치 서비스를 호출 할 수 있습니까? ?

답변

0

짧은 대답은 .... 나는 포기했다. WCF는 확장 가능성이 많으며 WCF 라이프 사이클에서 나중에 작업 선택에 대한 결정이 내려진 지점을 선택했습니다.

누구든지이 문제에 대한 답변을 제공한다면 기꺼이 내 대답을 바꿀 것입니다. 감사!

관련 문제