Partage
  • Partager sur Facebook
  • Partager sur Twitter

Class globale pour gestion de license

    12 novembre 2019 à 23:19:05

    Bonjour à tous, 

    Je réaliser une API en .NET Core 3.

    Je souhaiterai créer une class accessible depuis tous mes contrôleurs afin de gérer des codes produit. 

    MaClass.VerifPro(codeproduit)

    J'ai donc créer une public static class.

    Le problème c'est que j'ai des private static string que j'aimerai calculer au lancement de mon programme afin de les comparer par la suite et de gagner du temps.

    Le problème c'est que je n'arrive pas a faire un public void et venir modifier ma private.

    Je ne sais pas si c'set très clair.

    Merci par avance

    • Partager sur Facebook
    • Partager sur Twitter
      13 novembre 2019 à 12:36:38

      Là, vous analysez mal la situation, vous en concluez une solution, qui n'est pas la bonne, et vous vous retrouvez avec une mauvaise solution que vous avez du mal à implémenter, heureusement pour vous. ;)

      La classe statique, ce n'est pas la bonne solution car ce n'est pas une implémentation "clé en main" d'un singleton.

      Vous aurez une "instance" de cette classe par AppDomain, donc plusieurs si vous avez plusieurs AppDomain (gestion de contexte de sécurité, multi-versionning, etc...)

      Le code suivant est valide :

      static class titi{
      ...
          public static readonly string toto = DateTime.Now.ToString();
      ...
      }

      Mais l'appel à "titi.toto", vous pouvez potentiellement avoir des valeurs différentes en fonction de l'AppDomain courant.

      (On utilise ici un "constructeur statique")

      Je vous conseille donc d'au moins correctement implémenter le Design Pattern "Singleton", ou mieux, le Design Pattern "Service Provider".

      Pourquoi avez-vous besoin de modifier ces strings depuis l'extérieur de la classe ???

      P.S.: Les globales, c'est caca !!!

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

      Class globale pour gestion de license

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown