Silverlight - Как вы локализуете звонки на сервис WCF? - PullRequest
4 голосов
/ 28 февраля 2010

В настоящее время я пытаюсь найти хороший способ совершать вызовы к службам WCF таким образом, чтобы поток на сервере знал о клиентской культуре. Потратив пару дней на чтение тем в Интернете, мне кажется, что лучший способ сделать это - просто добавить (string clientCulture) в список параметров методов WCF; больше не:

string HelloWorld ();

но:

строка HelloWorld (строка clientCulture);

Надеюсь, я ошибаюсь ... и я приветствую любые предложения, которые покажут мне, как сделать это лучше. В идеале я мог бы сделать следующее:

WcfService srv = new WcfService();
srv.Endpoint.Address = new System.ServiceModel.EndpointAddress(
    ConfigConstants.ROOT + "Services/WcfService.svc");
// influence address as you are influencing address
srv.Culture = new System.Globalization.CultureInfo("fr-FR");
// and every call to server from now on would pass that 
// culture parameter either in header or body of SOAP message to server

Заранее благодарен за любую помощь по этой теме!

Ответы [ 2 ]

1 голос
/ 28 февраля 2010

Путь грубой силы, как вы сказали бы, заключается в добавлении параметра с клиентской культурой, который вы будете передавать при каждом вызове.

Однако более элегантным решением было бы создать поведение на клиенте и на стороне сервера.

Поведение на стороне клиента добавит заголовок к запросу в клиенте, получая текущую культуру из класса CultureInfo.

Поведение на стороне сервера будет искать заголовок в сообщении и добавлять его в OperationContext с известным ключом, который можно получить при вызове на стороне сервера.

0 голосов
/ 01 марта 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...