Как выбрать между различными файлами ресурсов в .Net? - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь выяснить, как выбирать между двумя разными (одинаково разработанными) файлами ресурсов в коде.Все примеры, которые я могу найти в Интернете, относятся к файлам ресурсов для разных языков, которые выбираются в зависимости от значения культуры.Это не сработает для моей проблемы.

Это веб-сервис, который возвращает изображение из одной из нескольких различных систем репозитория изображений.В зависимости от параметра, переданного методу, службе потребуется доступ к системе хранилища изображений, чтобы получить запрашиваемое изображение.При доступе к хранилищу изображений существует множество значений GUID «магической строки», которые представляют разные идентификаторы для различных поисков в этой системе.Одна из целей этого сервиса - скрыть всю эту сложность от пользователя.Вместо того, чтобы жестко кодировать эти GUID в коде, я поместил их в файл ресурсов.

Проблема заключается в следующем: каждая отдельная система репозитория изображений имеет одинаковый набор идентификаторов магических строк, которые необходимо использовать.Однако фактические значения GUID для этих магических строк различаются в зависимости от того, к какому репозиторию вы подключаетесь.Например, существует значение с именем «GroupIDPrompt», которое может быть «8a48f393642a753f0164418b670a7cdf» в одной системе, но «63aa28c3637b58680163b25f7e5a5d96» в другой системе.В коде я хотел бы называть это значение просто «Resources.GroupIDPrompt» или чем-то подобным, но мне нужно иметь возможность указать, какой файл ресурсов будет использоваться во время выполнения, в зависимости от того, что отправил мне потребитель службы.

Обычно я могу решить такую ​​проблему, используя интерфейс и создавая конкретную реализацию этого интерфейса на основе запроса.Здесь есть две причины, по которым это не работает - # 1, файлы кода ресурса генерируются автоматически, и если я отредактирую их, чтобы они наследовали от интерфейса, это будет нарушаться при каждой регенерации файла.# 2, Все значения ресурсов созданы как статические члены, и интерфейсам не разрешается объявлять статические члены.

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

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