195 votes

Visual Studio - Fichier Resx transformé par défaut de 'interne' en 'public'.

Chaque fois que je modifie un fichier de ressources dans VS, il régénère le code correspondant et définit le modificateur d'accès de la classe comme interne.
C'est pénible de devoir faire Ctrl-F -> ReplaceAll chaque fois que je modifie le resx. Existe-t-il une propriété ou un paramètre qui me permette de définir le paramètre public par défaut ?

internal class MyResource {

     internal static global::System.Resources.ResourceManager ResourceManager {...}

}

J'ai besoin de tous ces internal à être public tout le temps.

403voto

Anton Points 1432

Au lieu du ResXFileCodeGenerator, utilisez le PublicResXFileCodeGenerator.

Pour ce faire, il suffit de définir cette propriété en tant qu'outil personnalisé dans la fenêtre des propriétés du fichier Resx auquel vous voulez donner un accès public.

Edit : Alternativement, vous pouvez définir le modificateur d'accès sur public lorsque vous ouvrez le fichier resx dans Visual Studio. La boîte déroulante du modificateur d'accès se trouve en haut du formulaire.

-9voto

Le moyen le plus simple est peut-être de créer une classe dérivée avec un ctor public ?

La classe générée :

 [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
    internal Strings() {
    }

La classe dérivée :

public class PublicStrings : Strings
{
    /// <summary>
    /// Public localization Strings.
    /// </summary>
    public PublicStrings()
    {

    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X