Я работаю над пользовательской платформой проверки для моего приложения WPF / C #.
Что я хочу сделать, так это извлечь строки из файла ресурсов, в котором объявлена модель представления, но в фактическойкод проверки сам.Эта конкретная строка является тем же ресурсом, который используется меткой в форме пользовательского интерфейса редактирования.
Мой код отлично работает со следующим синтаксисом -
[Required(TypeRes = typeof(Resources))]
public string RequiredStringWithDesc { get; set; }
Но что я "m ищет то, что выглядит синтаксически чище. Я пытался использовать
const Type LocalRes = typeof(Resources);
[Required(TypeRes = LocalRes)]
public string RequiredStringWithDesc { get; set; }
Любые предложения по более простому синтаксису? Старый оператор C ++ DEFINE здесь будет работать хорошо.
К вашему сведению: причины перехода на такую большую работу связаны с тем, как мы проводим локализацию и создание пользовательского интерфейса.
РЕДАКТИРОВАТЬ Чтобы ответить на пару вопросов опочему мы это делаем? Мы будем использовать ту же строку из файла ресурсов для -
- На экране редактирования это метка для идентификации поля.
- В модели данных, если есть ошибка проверки, мы используем ее для правильной маркировки проблемы в файле журнала.
- В модели представления мы повторно используем эту метку в сообщении об ошибке проверки, чтобы подтвердить, гдепроблема для пользователя.
- Это часть системы проверки в реальном времени, и некоторые из режимов отказов непосредственно связаны с этими полями данных.Таким образом, мы можем легко получить правильно локализованную метку для применения к сообщениям о сбоях во время выполнения
Общая концепция заключается в том, что это упрощает представление согласованных сообщений пользователю, создавая их только один раз.Что касается атрибутов проверки (и этого вопроса), мы должны иметь возможность получить тип файла Resource для загрузки правильного сообщения.