Каждый раз, когда я пытаюсь установить значение по умолчанию дополнительного параметра к чему-то в файле ресурсов, я получаю ошибку времени компиляции
Значение параметра по умолчанию для 'сообщения' должно быть постоянным временем компиляции.
Есть ли какой-либо способ, которым я могу измениться, как файлы ресурсов работают для создания этого возможным?
public void ValidationError(string fieldName,
string message = ValidationMessages.ContactNotFound)
В этом, ValidationMessages
файл ресурсов.
Нет, вы не сможете заставить ресурс работать напрямую по умолчанию. Что вам нужно сделать, так это установить значение по умолчанию на что-то вроде null, а затем выполнить поиск ресурсов, когда параметр имеет значение по умолчанию в теле метода.
Один из вариантов - сделать значение по умолчанию нулевым
, а затем заполнить его соответствующим образом:
public void ValidationError(string fieldName, string message = null)
{
string realMessage = message ?? ValidationMessages.ContactNotFound;
...
}
Конечно, это работает, только если вы не хочу допускать null
как подлинное значение.
Другой потенциальный вариант - иметь этап предварительной сборки, на котором создается файл, полный строк const
на основе ресурсов; затем вы можете ссылаться на эти константы. Хотя это было бы довольно неловко.