Я создал сборку MyResources с двумя resx:
- MyResources.resx
- MyResources.en.resx
Внутри сборки Iдобавлен класс-обработчик, содержащий оболочку GetString внутри класса ResHandler:
public string GetResString(string key)
{
return _manager.GetString(key, _culture);
}
_culture - это просто свойство, которое можно установить извне:
public void ChangeCulture(CultureInfo newCulture)
{
_culture = newCulture;
}
Если явызовите этот код из, скажем, консольного приложения, все работает нормально:
var res = ResHandler.GetInstance(Guid.NewGuid().ToString());
//change the culture to "en"
res.ChangeCulture(new CultureInfo("en"));
Console.WriteLine(res.GetResString("TXT_0001"));
Этот код записывает английскую версию в консоль.Однако, если я вызову точно такой же код из метода unit-test, появится содержимое MyResources.resx.Что здесь не так?По какой-то причине юнит-тесты не могут это сделать?