Локализация на сервере WCF - PullRequest
1 голос
/ 29 апреля 2011

Я довольно хорошо разбираюсь в использовании локализации в простом приложении с интерфейсом WPF.

Сейчас я нахожусь в процессе разработки клиент-серверной архитектуры WCF; Я хочу иметь возможность создавать различные типы исключений на сервере и получать сообщение об ошибке в культуре клиента.

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

Однако я хочу, чтобы сообщения могли также регистрироваться в лог-файле сервера на одном языке (обычно английском), чтобы упростить поддержку приложения.

Существуют различные сборки, используемые как на сервере, так и на стороне клиента; каждая сборка будет иметь строковую таблицу сообщений об ошибках. Поэтому, когда создается исключение, ему необходимо иметь ID ресурса и менеджер ресурсов для данной данной сборки. Без подклассов каждого доступного типа исключения я не могу понять, как обойти это. Это кажется большой работой для проблемы, с которой наверняка уже сталкивались раньше?

Пример

Server.A.dll

Error Resources: MyErrorString1, MyErrorString2
Resource Manager: ResourceManagerA

Server.B.dll

Error Resources: MyErrorString3
Resource Manager: ResourceManagerB

Так что в идеале мне нужно иметь доступ к диспетчеру ресурсов для заданной строки в то время, когда мне нужно либо записать сообщение в файл, либо отправить его обратно через WCF в качестве ошибки; но я не хочу потерять способность отлавливать типы исключений, используя один общий класс исключений.

У кого-нибудь есть опыт решения этой проблемы или какие-нибудь интересные предложения о том, как ее реализовать?

Заранее спасибо,
Стив

Ответы [ 2 ]

3 голосов
/ 29 апреля 2011

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

1 голос
/ 29 апреля 2011

Если это техническое исключение, нет необходимости в деталях, которые пользователь все равно не поймет.Просто отобразите общее сообщение об ошибке.

Что касается ожидаемой ошибки, они должны быть где-то каталогизированы.Затем вам просто нужно обменяться кодами ошибок между клиентом и сервером и выполнить локализацию на клиенте на основе кода ошибки.

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