小技巧(累积)-反射读取资源、ToString()不抛出异常
string langPreference = Session["LanguagePreference"] as string;一、功能:通过反射取静态属性的值
目的:通过错误码,动态的从资源文件中找到各语种的资源。
public string GetErrInfo(int errCode)
{
string resourceKey;
if(errCode>=0)
{
resourceKey="R"+errCode.ToString();
}
else
{
errCode=errCode*-1;
resourceKey="R_"+errCode.ToString();
}
Type t = typeof(Resources.Login);
PropertyInfo pi = t.GetProperty(resourceKey);
return pi.GetValue(null, null).ToString();
}
public string GetErrInfo(int errCode)
{
string resourceKey;
string resourceName="";
if(errCode>=0)
{
resourceKey="R"+errCode.ToString();
}
else
{
errCode=errCode*-1;
resourceKey="R_"+errCode.ToString();
}
switch(resourceKey)
{
case "R299":
resourceName= Resources.Login.R299;
break;
case "R300":
resourceName= Resources.Login.R300;
break;
case "R301":
resourceName = Resources.Login.R301;
break;
case "R304":
resourceName = Resources.Login.R304;
break;
case "R303":
resourceName = Resources.Login.R303;
break;
}
return resourceName;
}目的:如果object是null则转换为null
下面的代码如果Session["LanguagePreference"] 为null转换为string时抛出异常。tostring会试图把
null转换为“”。
string langPreference = Session["LanguagePreference"].ToString();
string langPreference = Session["LanguagePreference"] as string;

浙公网安备 33010602011771号