6

这个问题是关于性能的

我正在研究 MVC4,我想支持多语言视图。

我为每种语言使用一个资源文件,如下所示:

Multi.resx For English as default
Multi.ar.resx for Arabic 
Multi.fr.resx for Frensh

在指定文化之后,我在我的观点中这样做

@Multi.Name

但是,我设置断点来检查@Multi的值,它实际上包含了我资源中的所有键。想象一下他们所有人:P

我的问题是:如果我为每个视图使用一个资源文件,它的性能会更好吗?或者即使我为每个视图使用多个资源文件,当我运行我的应用程序时是否会加载所有资源?

我真的不擅长英语,如果您不理解我的问题,请让我澄清一下。

4

2 回答 2

2

我知道这是旧线程,但我也在寻找答案。单个(和巨大的资源)文件会影响性能吗?.

经过研究,我找到了这个链接,我想和你分享(以防你还在寻找)。

好吧,简短的回答是NO,它不会影响性能。但是,在大型团队中工作时(每个程序员都需要修改相同的资源文件)可能会导致问题,并且合并更改可能会很麻烦。

这是MSDN的指南:

在全局和本地资源文件之间进行选择

您可以在 Web 应用程序中使用全局和本地资源文件的任意组合。通常,当您希望在页面之间共享资源时,您将资源添加到全局资源文件中。当您想以编程方式访问文件时,全局资源文件中的资源也是强类型的。

但是,如果您在其中存储所有本地化资源,全局资源文件可能会变得很大。如果多个开发人员在不同的页面上工作但在一个资源文件中,则全局资源文件也可能更难以管理。

本地资源文件使管理单个 ASP.NET 网页的资源变得更加容易。但是您不能在页面之间共享资源。此外,如果您有许多必须本地化为多种语言的页面,您可能会创建许多本地资源文件。如果站点很大,包含许多文件夹和语言,本地资源可以快速扩展应用程序域中的程序集数量。

当您对默认资源文件(本地或全局)进行更改时,ASP.NET 会重新编译资源并重新启动 ASP.NET 应用程序。这可能会影响您网站的整体性能。如果添加附属资源文件,它不会导致重新编译资源,但 ASP.NET 应用程序将重新启动。

我希望这可以帮助寻求相同答案的人。

干杯,山姆

于 2017-12-12T07:32:59.960 回答
0

这个问题(实际上是答案)中描述了您的问题的解决方案:Split Large Resource File into multiple files physical while compiler将其视为一个

于 2013-11-11T16:16:17.330 回答