c# warning - Mark assemblies with NeutralResources

2019-03-23 11:39发布

问题:

I'm getting the following warning: "CA1824 Mark assemblies with NeutralResourcesLanguageAttribute"

According to MSDN, the cause of this is: An assembly contains a ResX-based resource but does not have the System.Resources.NeutralResourcesLanguageAttribute applied to it.

Could anyone please explain what it means? I don't want to define specific culture setting. I want them to be customisable.

回答1:

The NeutralResourcesLanguageAttribute informs the resource manager of the language that was used to display resources which are contained in the main assembly. E.g. if you coded your assembly so that it contains resources which are in English, then include the following line in your AssemblyInfo.cs

[assembly: NeutralResourcesLanguage("en")]

This way, when looking up resources in English, the resource manager will not look for an English culture satellite assembly, but rather just use the resources contained in the main assembly. This is purely a performance optimisation.



回答2:

The NeutralResourcesLanguage attribute tells the resource manager about the language used in your neutral resources (the resources whose filename don't have a culture code suffix, e.g. YourModule.resx). That information can be used during the resource fallback process.