C# 自定义 resx 与本地化
C# customized resx with localization
在 C# 中,可以使用给定的文件名检索资源,例如
ResourceManager rm = new ResourceManager("namespace.myresource",this.GetType().Assembly);
string someString = rm.GetString("GeneralError", culture);
有了这个,本地化可以通过将文化放在文件末尾来实现。但我也需要让它自定义到实例级别。
例如:myresource.instance1.resx、myresource.instance3.resx、myresource.instance1.fr-FR.resx、..等
但是用基本的resourcemanager是做不到的。有没有什么具体的方法可以读取这样的资源? (数据库方法不适合该应用程序)
@Nino - 感谢您的帮助。
可以这样整理
var rsxr = new ResXResourceReader("MyResource.resx");
rsxr.UseResXDataNodes = true;
foreach (DictionaryEntry dEntry in rsxr)
{
var node = (ResXDataNode)dEntry.Value;
if (node.FileRef == null)
{
var paramValue = node.GetValue((ITypeResolutionService) null);
}
}
在 C# 中,可以使用给定的文件名检索资源,例如
ResourceManager rm = new ResourceManager("namespace.myresource",this.GetType().Assembly);
string someString = rm.GetString("GeneralError", culture);
有了这个,本地化可以通过将文化放在文件末尾来实现。但我也需要让它自定义到实例级别。
例如:myresource.instance1.resx、myresource.instance3.resx、myresource.instance1.fr-FR.resx、..等
但是用基本的resourcemanager是做不到的。有没有什么具体的方法可以读取这样的资源? (数据库方法不适合该应用程序)
@Nino - 感谢您的帮助。
可以这样整理
var rsxr = new ResXResourceReader("MyResource.resx");
rsxr.UseResXDataNodes = true;
foreach (DictionaryEntry dEntry in rsxr)
{
var node = (ResXDataNode)dEntry.Value;
if (node.FileRef == null)
{
var paramValue = node.GetValue((ITypeResolutionService) null);
}
}