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

C# Discussion :

Comment utiliser une private classe interne a une classe depuis une autre classe ?


Sujet :

C#

  1. #1
    Battosaiii
    Invité(e)
    Par défaut Comment utiliser une private classe interne a une classe depuis une autre classe ?
    Bonjour,

    J'ai une classe que j'aimerais tester JmsXmlRouterWsdlBuilder(interne a XmlJmsService)

    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
     
     
    public class XmlJmsService : JMSService
        {
            public XmlJmsService(string name)
                : base(name)
            {
            }
     
            protected override ArtixRouterWsdlBuilder GetRouterWsdlBuilder()
            {
                return new JmsXmlRouterWsdlBuilder(this.DestinationSettings as JMSDestinationSettings);
            }
     
     
            private class JmsXmlRouterWsdlBuilder : JMSRouterWsdlBuilder
            {
                public JmsXmlRouterWsdlBuilder(JMSDestinationSettings jmsd)
                    : base(jmsd)
                { }
     
                protected override string addJMSBinding(ServiceDescription logicalWsdl, string portTypeName, string outputDir)
                {
    }
    ...
    J'aimerais tester addJMSBinding.

    Comment reutiliser cette function depuis une autre classe :

    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
    
     public class TestXmlBinding : JMSRouterWsdlBuilder
            {
                public TestXmlBinding(JMSDestinationSettings ds)
                    : base(ds)
                {
                }
    
             ici par exemple
                public override XmlDocument GetRouterWsdl(WSDL.ServiceDescription logicalWsdl)
                {
                    XmlDocument xdoc = new XmlDocument();
                    return xdoc;
                }
            }

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Etant donné que tu n'as pas de lien d'héritage et que ta méthode est protégée, c'est impossible. Il faut choisir un autre niveau d'encapsulation pour pouvoir y accéder.

    Tu peux redéfinir la méthode de la classe mère et/ou l'appeler mais tu ne peux pas accéder à une méthode protégée d'une classe de même niveau.

  3. #3
    Battosaiii
    Invité(e)
    Par défaut
    Oui tu as raison. Le mieux encore est de tester non pas individuellement cette classe mais la fonction qui utilise cette classe.
    Merci

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/10/2012, 11h38
  2. Réponses: 4
    Dernier message: 27/11/2009, 17h08
  3. Réponses: 2
    Dernier message: 10/12/2008, 10h53
  4. Réponses: 2
    Dernier message: 27/06/2008, 16h57
  5. Réponses: 2
    Dernier message: 24/04/2008, 17h31

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