Имам ресурсен файл strings.resx в моя проект, който съхранява английски низове по подразбиране. С цел тестване създадох още един файл strings.zh-CN.resx, но съхранените там низове не са истински китайски. Те са просто тестови низове, които са генерирани след добавяне на някои знаци към низовете, съхранени в strings.resx (основен ресурсен файл). Когато потребител влезе в zh-CN култура, този файл помага да се уловят твърдо кодирани данни и непреведени низове. Възможно ли е да мога да се отърва от файла strings.zh-CN.resx и да генерирам фалшив ресурс в движение, когато текущата култура на нишката е zh-CN?
По принцип - има ли някакви начини, по които можем да подведем ResourceManager да върне фалшиви низове за определени култури, без да имаме физически .resx файл?
Използвам автоматично генерирания файл designer.cs на Visual Studio за извличане на ресурс. Виждам във файла designer.cs, че има едно статично свойство за всеки низ в .resx файла. Начинът, по който ResourceManager се инициализира в designer.cs, е както по-долу.
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("xxx.xxx.Strings", typeof(Strings).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
Това е начинът, по който статичното свойство се добавя от автоматично генериран код.
/// <summary>
/// Looks up a localized string similar to Absolute.
/// </summary>
public static string Absolute {
get {
return ResourceManager.GetString("Absolute", resourceCulture);
}
}
Търся точки за разширение в това извличане. ако е възможно, искам да закача моя собствен персонализиран ResourceManager (или нещо друго, за което не съм сигурен) и да върна фалшив псевдо низ, когато културата е zh-CN. Основната цел е, че не искам да генерирам фалшив файл с физически ресурси само с цел тестване.
ResourceManager
е част от .NET, а не част от C# - person John Saunders   schedule 15.05.2015