检测ASP.NET中是否存在所有数据库保存的资源

时间:2011-01-24 14:42:20

标签: asp.net asp.net-mvc unit-testing resources

我目前将资源保存在数据库中而不是resx文件中。我希望能够测试应用程序中使用的所有密钥是否都保存在数据库中以避免运行时错误。

我有一个自定义ResourceProviderFactory来完成检索资源。

资源可以位于aspx视图页面中 - GetLocalResourceObject("ResourceKey")GetGlobalResourceObject("ResourceClass", "ResourceKey")

他们可能在控制器中 - HttpContext.GetGlobalResourceObject("ResourceClass", "ResourceKey")

我还在不使用ASP.NET资源工厂的情况下调用应用程序核心程序集中的资源(使用单例代码) - CoreResources.Current.GetResource("ResourceClass", "ResourceKey")

对于我来说,确保所有资源都在数据库中而不必等待运行时异常的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我能想到的唯一方法是编写一个扫描源代码文件的应用程序,并提取您正在使用的所有资源键。然后,您可以检查数据库中每个密钥的存在。 不幸的是,它并非如此微不足道......我认为没有更简单的方法。

但是,我会更改您的ResourceProviderFactory,以便在缺少密钥时不抛出异常。只需返回一些文本,如“资源缺失:'xxx'”并记录下来,以便可以添加。