编写者:郑昀@UltraPower
安装String Resource Generator 1[1].2.5,运行SRGenerator.msi。
然后给自己的工程中添加SR.strings文件,通过VS.NET在现有的.RESX或SR.strings文件设置Custom tool属性为:StringResourceTool或SRCodeGen。然后就自动生成了SR.cs和SR.resx.
使用呢,比如:
我们在SR.strings文件中定义了一行:
ItemNotFoundMessage(key) = Item not found in cache\r\n\tKey: {0}
那么我们在应用程序中就可以这样:
this.ResultsTextBox.Text += SR.ItemNotFoundMessage(selectItemForm.ItemKey) + "\r\n";
其实,这个SR.ItemNotFoundMessage的定义在自动生成的SR.CS文件中:
public static string ItemNotFoundMessage (string key)
{
return Keys.GetString( Keys.ItemNotFoundMessage, key );
}
{
return Keys.GetString( Keys.ItemNotFoundMessage, key );
}
这种传入方式很利于我们统一应用中的错误描述的生成方式。比如我们可以定义错误描述在SR.strings文件中:
LBS_Request_CannotConnectServer = 无法连接到远端LBS网关服务器:{0}
那么在实际调用时就可以这么:
catch(WebException ex)
{...
{...
sb.Append(SR.LBS_Request_CannotConnectServer(_Url) );
...
}
其他的SR.Strings定义方式还有:
Name | Value | Comments | Member on SR class |
NotAuthorized | You are not authorized, go away |
| String NotAuthorized { get; } |
ArgumentInvalid | Argument {0} is not valid | argumentName | String ArgumentInvalid(object argumentName); |
ConnectionBad | Connection server: {0}, database {1} invalid | server,db | String ConnectionBad(object server, object db); |
OtherStuff | This {0}, is undefined: {1} |
| String OtherStuff(object arg1, object arg2); |