none
Comment créer utiliser plusieurs fois le même assembly dans un programme. RRS feed

  • Question

  • J'ai crée une Librairie de class : FacturationClass qui contient plusieurs
    fichiers de classe, et un fichier Module GlobalFacturation qui contient
    plusieurs variables(object) partagées par toutes les classes de facturation
    Class.

    Extrait du module :
    Public Module GlobalFacturation
        Public Property Config() As FacturationCDMConfig
        ' le cache utilisé pour le controle est créer lors appel Initialise
        Public Property Cache() As CacheCDM
        ' le cache des structures DB utilisé pour le controle est créer lors
    appel Initialise
        Public Property StructureCache() As DBStructureCache
        ' collection des erreurs trouvés lors du controle
        Public Property ListeErreur() As GestionErreurBase
        ' collection des warning trouvés lors du controle
        Public Property ListeWarning() As GestionWarningBase
        ' collection des message a tranmettre à quelqu'un
        Public Property ListeMessageAQuelqun() As GestionMessageAQuelqun
        Public Function Initialise(ByRef BaseData As CDM.Systeme.CDMDataClass,
    Optional ByVal MaConfiguration As Collections.Specialized.NameValueCollection
    = Nothing, Optional ByVal MesParam() As String = Nothing) As Boolean
          '...... du code d'init
        End Function
    End Module

    Je souhaiterais utilisé ces classes/module dans plusieurs pages ASP .NET.
    Or il m'est nécessaire de créer parfois plusieurs Module GlobalFacturation
    pour par. exemple plusieurs utilisateurs connectés (Pour l'instant
    l'application ASP .NET utilise le même "Module" pour tous les utilisateurs)

    Existe-t-il un moyen de créer du code qui ressemble (par ex.) à ceci:

    Page utilisateur 1 :
      dim M1 = InitialiseMonModule(SessionID1)
      Session("M1") = M1
      dim ctrl as new FacturationClass.DBControle
      ctrl.Controle()

    Page utlisateurs 2, et etc...
      dim M2 = InitialiseMonModule(SessionID2)
      Session("M2") = M2
      dim ctrl as new FacturationClass.DBControle
      ctrl.Controle()

    etc...

    Merci d'avance

    frj


    lundi 15 septembre 2008 10:40

Réponses

  • Bonjour,

     

    Normalement, si vous devez partager des variables entre différentes demandes cliente, il est conseillé d'utiliser la classe HttpApplicationState qui permet de partager des informations entre différentes sessions.

     

    Cordialement

    mercredi 17 septembre 2008 10:31
    Modérateur

Toutes les réponses

  • Bonjour,

     

    Il faut transformer votre module en une classe.

    Cela permet d'instancier votre classe autant de fois que vous voulez... (Et donc une fois par utilisateur).

     

    Cordialement

     

    lundi 15 septembre 2008 12:45
    Modérateur
  • Merci, bien

     

    Je crois que je vais faire

    Public class GlobalFacturation
        Public Property Shared Config() As FacturationCDMConfig
        ' le cache utilisé pour le controle est créer lors appel Initialise
        Public Property Shared Cache() As CacheCDM
        ' le cache des structures DB utilisé pour le controle est créer lors
    appel Initialise
        Public Property Shared StructureCache() As DBStructureCache
        ' collection des erreurs trouvés lors du controle
        Public Property Shared ListeErreur() As GestionErreurBase
        ' collection des warning trouvés lors du controle
        Public Property Shared ListeWarning() As GestionWarningBase
        ' collection des message a tranmettre à quelqu'un
        Public Property Shared ListeMessageAQuelqun() As GestionMessageAQuelqun
        Public Function Initialise(ByRef BaseData As CDM.Systeme.CDMDataClass,
    Optional ByVal MaConfiguration As Collections.Specialized.NameValueCollection
    = Nothing, Optional ByVal MesParam() As String = Nothing) As Boolean
          '...... du code d'init
        End Function
    End class
     

    Shared pour pouvoir uutiliser pas exemple dans class DBStructureCache

       public class DBStructureCache

          public function CreateStructure

             select case GlobalFacturation.Config("DB")

                case = "DEVL"

                     '........

                case = "PROD"

                     '........

                case else

                    '......

             end

          end function

       end class

     

    frj

     

     

    mardi 16 septembre 2008 13:23
  • Bonjour,

     

    Normalement, si vous devez partager des variables entre différentes demandes cliente, il est conseillé d'utiliser la classe HttpApplicationState qui permet de partager des informations entre différentes sessions.

     

    Cordialement

    mercredi 17 septembre 2008 10:31
    Modérateur