Bonjour.

J'ai pour habitude de développer des "librairies" en csharp que je partage entre différents projets (exemple: manipulation de fichiers INI, etc).
C'est très souvent déclaré ainsi LibMachin.cs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
static class LibMachin
{
    public static void DoAction()
   {
   }
}
Pratique pour avoir du code réutilisable sans avoir à se trimbaler une DLL.
Jusque là pas de problème.

J'ai un gros projet qui se compose d'un EXE qui fait référence à un assembly dans une DLL.
Aussi bien dans le projet de l'EXE que dans la DLL, j'ai ajouté au projet le fichier LibMachin.cs car j'ai besoin aussi bien dans l'un que dans l'autre de certaines de ses fonctions.

Mon problème est en debug de l'EXE.
Il n'est plus capable d'évaluer les expressions et j'ai le message :
Le type 'MesLib.LibMachin' existe dans 'MonProg.exe' et dans 'MonAssembly.dll'.
Cela ne plante pas mais cela met en lumière que mon architecture de partage de code est imparfaite.

Notons que je n'ai pas envie de déplacer mes Lib dans un assembly DLL.

Y a t-il une déclaration à faire dans ma LibMachin pour qu'elle ne soit pas visible "en dehors du projet" ? J'ai essayé "internal", cela ne change pas.
Private n'est pas possible pour du static.

Bref, j'en appelle aux architectes du code source.

Merci !