为什么ResourceManager.GetResourceSet在生成后的第一个请求上返回null?(C#)

为什么ResourceManager.GetResourceSet在生成后的第一个请求上返回null?(C#),c#,asp.net,nullreferenceexception,resourcemanager,C#,Asp.net,Nullreferenceexception,Resourcemanager,我正在开发一个内置于C#(asp.net)的大型ish web应用程序。我有一个简单的aspx页面,为客户端浏览器提供本地化字符串,以便在javascript控件中使用。要获取字符串,请执行以下操作: ResourceManager _resources = new ResourceManager(_pathname, typeof(ARM).Assembly); ResourceSet rs = _resources.GetResourceSet(culture, false, false);

我正在开发一个内置于C#(asp.net)的大型ish web应用程序。我有一个简单的aspx页面,为客户端浏览器提供本地化字符串,以便在javascript控件中使用。要获取字符串,请执行以下操作:

ResourceManager _resources = new ResourceManager(_pathname, typeof(ARM).Assembly);
ResourceSet rs = _resources.GetResourceSet(culture, false, false);

//loop through rs and write the keys & values out to the client in plaintext
这一切都可以正常工作,除了在清理/构建或重建之后立即向页面发出的第一个请求(如果我只是做一些更改,然后进行构建,则可以正常工作)。因此,在第一个请求中,当我尝试迭代资源集时,会得到一个空引用异常。但是,如果我在错误发生后刷新页面,从那时起它就可以正常工作

有人知道为什么会发生这种情况吗?

GetResourceSet方法的第二个参数“createIfNotExist”必须为true,它告诉ResourceManager在尚未加载资源集时加载资源集

ResourceSet rs = _resources.GetResourceSet(culture, true, false);

为我工作。谢谢你的回答,createIfNotExists让我走错了路。(也许微软应该考虑重命名参数名loadIfNotPresent)我们这里有一个#TenYearsChallenge。2009年的第二个参数是createIfNotExist,2019年的第二个参数是createIfNotExist!!!在这个命名大会上浪费了整整两天…真痛苦!谢谢-Mircosofts真的需要更改这个参数名!