I'm implementing localization in my WCF application according to http://www.codeproject.com/KB/WCF/WSI18N.aspx and some other articles. Basicly I'm attaching a message header with current culture info on client (using IClientMessageInspector implementation) and then applying the culture info on current thread on server side (using ICallContextInitializer implementation). The probem I'm currently facing is that my implementation of ICallContextInitializer isn't probably the best place to actually change the Thread.CurrentThread.CurrentCulture according to message header, because resetting the thread's culture in AfterInvoke() occurs before other things which should still be in localized context. Currently I've problem with IErrorHandler implementation - it's called after ICallContextInitializer.AfterInvoke() so the thread is already reset back to default culture and so I can't work with localized resources in my IErrorHandler.
Is there any better extension place than ICallContextInitializer I could use for localization based on message header? Or better - is there any article describing execution sequence in WCF? I'd like to understand the sequence in which are different extension points processed...
The problem is solved, but I'd like to get more information about WCF internal execution sequence etc - any tips what to read on this topic?