Есть два минуса, которые я могу придумать совершенно неожиданно:
- для чтения пары ключ / значение требуется операция ввода-вывода, что может привести к значительному снижению производительности,
- если вы позволите стандартной логике .Net разрешать загрузочные ресурсы, она всегда будет пытаться найти файл, соответствующий свойству CultureInfo.CurrentUICulture;это может быть проблематично, если вы решите, что на самом деле хотите иметь несколько resx-ов (т.е. по одному на язык);это может привести к еще большему снижению производительности.
Кстати.Не могли бы вы просто создать вспомогательный класс или структуру, содержащую свойства, например:
public static class GlobalConstants
{
private const int _SomeInt = 42;
private const string _SomeString = "Ultimate answer";
public static int SomeInt
{
get
{
return _SomeInt;
}
}
public static string SomeString
{
get
{
return _SomeString;
}
}
}
Затем вы можете обращаться к этим свойствам точно так же, как к файлам ресурсов (я предполагаю, что вы привыкли к этомустиль):
textBox1.Text = GlobalConstants.SomeString;
textBox1.Top = GlobalConstants.SomeInt;
Возможно, это не лучшая вещь, но я твердо уверен, что это все же лучше, чем использовать для этого файл ресурсов ...