IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Principes d'héritages sur plusieurs assembly


Sujet :

VB.NET

  1. #1
    Membre habitué

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2008
    Messages : 110
    Points : 167
    Points
    167
    Par défaut Principes d'héritages sur plusieurs assembly
    Bonjour,

    J'ai un problème de conception, mais je n'arrive pas à voir, j'ai pensé à plusieurs solutions, mais aucune ne semble fonctionner.

    J'ai un lot de variables globales qui doivent être accessible à plusieurs assemblies

    Voici la structure

    Class commune
    public shared readonly mavariableglobal as string = "foobar"

    j'ai un autre assembly qui hérite de classe commune pour avoir accès à la valeur de mavariableglobal

    Class 2emeClasse
    inhérits commune

    cette classe, j'ai accès à ma variable puisque j'ai une référence à l'assembly dans le projet.

    Ensuite, j'ai une 3ieme classe qui hérite de 2emeClasse mais ne doit pas savoir que 2emeClasse hérite de la classe commune mais elle doit accéder a la valeur de 'mavariableglobal'

    Class 3emeClasse
    inherits 2emeClasse

    Mais de la facon que ça marche présentement, 3emeClasse me demande d'avoir une référence de Commune, ce que je veux éviter à tout pris.


    J'ai regardé au niveau d'une classe singleton, mais je ne crois pas que ça va regler la situation. Ensuite, j'ai jeté un oeil au problème par Diamand. Encore là, ce n'est pas trop ce que je cherche.

    Que feriez-vous?

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    ta 2eme classe dans ton 2eme assembly n'a pas besoin d'hérité de la 1ère pour lire quelque chose de shared
    n'importe où dans cet assembly2 tu peux écrire commune.mavariableglobal pour connaitre sa valeur

    après si ton assembly3 peut avoir une référence sur a2 mais que tu ne veux pas qu'il ait une référence sur a1 (pourquoi d'ailleurs ?) tu peux faire une autre propriété shared dans a2 qui retourne commune.mavariableglobal

  3. #3
    Membre habitué

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2008
    Messages : 110
    Points : 167
    Points
    167
    Par défaut
    Merci de ta réponse, en fait on ne veut pas qu'il est référence a A1 parce que y'a beaucoup d'impact dans d'autres projets si nous devons ajouter une référence a A1 dans tous les projets.

  4. #4
    Membre actif Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 296
    Points
    296
    Par défaut
    comme Pol63:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     recup = commune.mavariableglobal
    Et c'est tout, pas besoin d'instancier, n'y d'héritage tant que les variable/fonction sont en shared
    Edit: oh et si tu veux pas faire de référence, un modification simple et rapide peut être juste d'ajouter en haut de tes classes: Imports Commune Et tu auras accès a tes variables global par leur nom : recup = mavariableglobal

    Ou alors une classe singleton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Public NotInheritable Class [Global]
     
    #Region "Singleton"
            Private Shared _Instance As [Global]
            Private Shared ReadOnly mylock As New Object()
     
            ''' <summary>
            ''' Singleton: récupère l'instance unique de cette classe
            ''' </summary>
            ''' <returns></returns>
            ''' <remarks></remarks>
            Public Shared Function Instance() As [Global]
                SyncLock (mylock)
                    If _Instance Is Nothing Then
                        _Instance = New [Global]
                    End If
                    Return _Instance
                End SyncLock
            End Function
     
            Public Shared Function IsInstanced() As Boolean
                If _Instance Is Nothing Then Return False
                Return True
            End Function
    #End Region
     
    Private Sub New
     
    End Sub
     
    End Class

Discussions similaires

  1. Héritage sur plusieurs niveaux
    Par L0rD59 dans le forum Doctrine2
    Réponses: 1
    Dernier message: 14/05/2013, 08h30
  2. Héritage sur plusieurs niveaux de user control
    Par lila23 dans le forum Silverlight
    Réponses: 6
    Dernier message: 14/09/2011, 15h18
  3. [Conception] Héritage sur Plusieurs classes abstraites
    Par facilus68 dans le forum Langage
    Réponses: 9
    Dernier message: 20/03/2009, 13h06
  4. [Hibernate] Héritage sur plusieurs niveaux
    Par srvremi dans le forum Hibernate
    Réponses: 2
    Dernier message: 31/05/2006, 18h39
  5. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo