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()资源文件名。

+0

'(!(null == Msg.Culture))'你为什么要那样做? '(Msg.Culture!= null)'是相同的但是可读的 – EpicKip

找到原因,有些代码系统上面的代码系统无法从数据库获取数据,并且没有在那里报告错误,然后在Msg.Culture = new CultureInfo("zh-HK");处报告错误。