2010-01-12 2 views
3

http://www.codeproject.com/KB/WCF/WSI18N.aspx 및 일부 다른 기사에 따라 WCF 응용 프로그램에서 현지화를 구현하고 있습니다. 기본적으로 IClientMessageInspector 구현을 사용하여 클라이언트의 현재 culture 정보가 포함 된 메시지 머리글을 첨부하고 ICallContextInitializer 구현을 사용하여 서버 쪽의 현재 스레드에 culture 정보를 적용합니다. 내가 현재 직면하고있는 probem은 ICallContextInitializer를 구현 한 것이 아마도 AfterInvoke()에서 스레드의 culture를 재설정하면 다른 것들보다 먼저 발생하기 때문에 메시지 헤더에 따라 실제로 Thread.CurrentThread.CurrentCulture를 변경하는 가장 좋은 장소가 아니라는 것입니다. 현지화 된 상황에 있어야합니다. 현재 IErrorHandler 구현에 문제가 있습니다. ICallContextInitializer.AfterInvoke() 이후에 호출되므로 스레드가 이미 기본 culture로 다시 설정되어 있으므로 IErrorHandler에서 지역화 된 리소스로 작업 할 수 없습니다.WCF - 스레드에서 현지화를 적용 할 때 선택해야하는 확장 점은 무엇입니까?

메시지 헤더를 기반으로 현지화에 사용할 수있는 ICallContextInitializer보다 나은 확장 영역이 있습니까? 아니면 더 나은 - WCF에서 실행 순서를 설명하는 문서가 있습니까? 나는


이 문제가 해결 ... 처리 다른 확장 포인트가되는 순서를 이해하고 싶습니다,하지만 난 등 WCF 내부 실행 순서에 대한 자세한 정보를 얻으하고 싶습니다 - 어떤 조언 무엇을 이 주제를 읽으시겠습니까?

답변

4

Dispatcher가 작동하는 정확한 방법은 실제로 문서화되지 않았습니다 (WCF와 마찬가지로). 개인적으로 나는 IDispatchMessageInspector을 사용하려고합니다. 오류 메시지가 생성되어 사용자에게 반환 된 후에 실행되기 때문에 일 수도 있습니다.은 올바른 컨텍스트에서 IErrorHandler가 실행될 가능성을 높일 수 있습니다.

+1

에 이해합니다. 감사. WCF 상호 작용/실행 순서에 대한 자세한 정보는 WCF를 더 깊이 이해할 수 있도록이 정보를 얻고 싶습니다.이 항목을 읽는 데 도움이 될만한 정보를 얻으실 수 있습니다. – Buthrakaur

1
현재 스레드의 문화가 다시 IDispatchMessageInspector.BeforeSendReply에서 재설정하기 전에 IErrorHandler.ProvideFault가 호출되는 -

은 WCF 처리의 순서 The basics of the WCF stack을보고 내가 IDispatchMessageInspector을 사용하여 문제를 재 구현하고 정말 내가 필요로 일하기 시작 자세한 내용은 Extending WCF’s Client and Dispatcher Runtimes

관련 문제