public class ResxResourceManager : System.Resources.ResourceManager {
public ResxResourceManager(string baseName, string resourceDir) {
Type[] paramTypes = new Type[] { typeof(string), typeof(string), typeof(Type) };
object[] paramValues = new object[] { baseName, resourceDir, typeof(ResXResourceSet) };
Type baseType = GetType().BaseType;
ConstructorInfo ci = baseType.GetConstructor(
BindingFlags.Instance | BindingFlags.NonPublic,
null, paramTypes, null);
ci.Invoke(this, paramValues);
}
protected override string GetResourceFileName(CultureInfo culture) {
string resourceFileName = base.GetResourceFileName(culture);
return resourceFileName.Replace(".resources", ".resx");
}
}
你如何使用它?你能給個例子嗎? – Jaguar 2011-01-28 13:04:52
謝謝,我正在尋找這一段時間。使用示例'ResxResourceManager rm = new ResxResourceManager(「NameOfResourceFile」,「PathToResourceDir」); rm.GetString(name,System.Globalization.CultureInfo.GetCultureInfo(「en-US」));' – tsukimi 2012-11-06 08:47:20
此代碼看起來非常危險。它使用refelction來調用第二個基礎構造函數。這個構造函數是公開的(自.NET 2開始:也許它不在.NET 1或1.1中)。 – Richard 2014-07-04 14:56:45