Resx文化为空?
问题描述:
为什么系统在这个Msg.Culture = new CultureInfo("zh-HK");
行发生错误?Resx文化为空?
Msg是一个resx(资源)文件。
这是一个控制台程序,.net 3.5,c#。
我在我自己的电脑上测试过,没有问题。它只给我错误,当我部署到客户端PC与捕获,它只给我错误,当它从Outlook读取某些电子邮件,其他电子邮件没有问题。
错误是:
System.NullReferenceException:对象不设置为一个对象的一个实例。
if (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["cultureInfo"].ToString()))
{
if (null != System.Threading.Thread.CurrentThread.CurrentUICulture)
{
object test = new CultureInfo("zh-HK");
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-HK");
}
else if (null != Msg.Culture)
{
object test = new CultureInfo("zh-HK");
Msg.Culture = new CultureInfo("zh-HK");
}
}
我能找到使用Assembly.GetExecutingAssembly().GetManifestResourceNames()
资源文件名。
答
找到原因,有些代码系统上面的代码系统无法从数据库获取数据,并且没有在那里报告错误,然后在Msg.Culture = new CultureInfo("zh-HK");
处报告错误。
'(!(null == Msg.Culture))'你为什么要那样做? '(Msg.Culture!= null)'是相同的但是可读的 – EpicKip