2010-11-01 23 views
17

Je reçois l'avertissement suivant: "CA1824 assemblées de Mark avec NeutralResourcesLanguageAttribute"C# avertissement - ensembles de Mark avec NeutralResourcesLanguageAttribute

Selon MSDN, la cause de c'est: Un assemblage contient un ResX -based resource, mais pas System.Resources.NeutralResourcesLanguageAttribute.

Quelqu'un pourrait-il expliquer ce que cela signifie? Je ne veux pas définir de paramètre de culture spécifique. Je veux qu'ils soient personnalisables.

Répondre

20

L'attribut NeutralResourcesLanguageAttribute informe le gestionnaire de ressources du langage utilisé pour afficher les ressources contenues dans l'assembly principal. Par exemple. si vous votre assemblée afin avons écrit qu'il contient des ressources qui sont en anglais, inclure la ligne suivante dans votre AssemblyInfo.cs

[assembly: NeutralResourcesLanguage("en")] 

De cette façon, lors de la recherche des ressources en anglais, le gestionnaire de ressources ne cherchera pas un Assemblée de la culture anglaise satellite, mais plutôt utiliser les ressources contenues dans l'assemblage principal. C'est purement une optimisation des performances.

+0

Comment appliquer la solution si j'ai un site web, pas une application web? Je n'ai pas AssemblyInfo.cs. –

+0

Vous devriez pouvoir ajouter l'attribut dans n'importe quel fichier C# de votre solution. En fait, vous pouvez probablement ajouter manuellement un AssemblyInfo.cs manuellement. –

+2

Vous pouvez également accéder aux propriétés de votre projet, puis à l'onglet de l'application. Cliquez sur "Informations sur l'assemblage". Le dernier menu déroulant est intitulé "Neutral Language". Vous pouvez le changer ici aussi. –

4

Le NeutralResourcesLanguage attribute indique au gestionnaire de ressources le langage utilisé dans vos ressources neutres (les ressources dont le nom de fichier n'a pas de suffixe de code de culture, par exemple YourModule.resx). Cette information peut être utilisée pendant le resource fallback process.