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

Silverlight Discussion :

Impossible d'hériter d'une classe pour des raisons de sécurité


Sujet :

Silverlight

  1. #1
    Membre actif Avatar de padodanle51
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 389
    Points : 230
    Points
    230
    Par défaut Impossible d'hériter d'une classe pour des raisons de sécurité
    Bonjour
    J'ai créé une classe qui hérite de System.Net.WebClient.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    namespace WebViewer
    {
        class WebClient : System.Net.WebClient
        {
             string title;
             string level;
        }
    }
    Celle-ci est appelée dans le constructeur d'une autre classe (que l'on appelera X). Si j'utilise ma classe WebViewer j'ai l'erreur suivante quand j'appelle le construsteur de X:

    Violation des règles de sécurité liées à l'héritage lors de la substitution du membre 'WebViewer.WebClient..ctor()'. L'accessibilité à la sécurité de la méthode de substitution doit correspondre à celle de la méthode en cours de substitution.
    Par contre si dans le constructeur de X j'utlise le WebClient de System.Net je n'ai aucune erreur. Avez-vous une idée svp?
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par padodanle51 Voir le message
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    namespace WebViewer
    {
        class WebClient : System.Net.WebClient
        {
             string title;
             string level;
        }
    }
    Moi je commencerai par renommer ma classe dérivée au lieu d'utiliser le même nom que la classe de base .

    Qui sait l'erreur est du au fait que tu utilises une classe dérivée dont le constructeur par défaut a le même nom que ta classe de base

  3. #3
    Membre actif Avatar de padodanle51
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 389
    Points : 230
    Points
    230
    Par défaut
    J'ai changé le nom de la classe, mais celà ne change rien

  4. #4
    Invité
    Invité(e)
    Par défaut
    t'es sûr que t'essaie pas de substituer un contstructeur (peut être je dis des bétises mais c'est ce que semble confirmer l'erreur)

    Je crois que vu que ta classe de base possède le même nom que ta classe dérivée. Alors elles auront un constructeur par défaut identique et du coup le compilateur crois que t'es en train de substituer le constructeur de ta classe de base dans ta classe dérivée (normalement ça s'applique qu'aux méthodes et champs). J'en suis sûr que si tu renomme ta classe dérivée ça devrait marcher.

  5. #5
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Bonjour,

    Je crois que vu que ta classe de base possède le même nom que ta classe dérivée. Alors elles auront un constructeur par défaut identique et du coup le compilateur crois que t'es en train de substituer le constructeur de ta classe de base dans ta classe dérivée (normalement ça s'applique qu'aux méthodes et champs). J'en suis sûr que si tu renomme ta classe dérivée ça devrait marcher.
    Après test, je confirme qu'en changeant le nom de la classe, le problème reste le même.
    Je ne comprends pas trop pourquoi,peut être une protection de SL ? Bizarre tout de même...
    Il semble qu'il soit préférable pour toi d'encapsuler WebClient dans une autre classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class WebClientEx
    {
        private System.Net.WebClient webclient = new WebClient();
     
        public void DownloadSpecifique()
        {
             // utilisation de WebClient
        }
    }

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Samoteph Voir le message
    Après test, je confirme qu'en changeant le nom de la classe, le problème reste le même.


    La proposition de Samoteph me semble raisonnable

  7. #7
    Membre actif Avatar de padodanle51
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 389
    Points : 230
    Points
    230
    Par défaut
    En effet ça me semble une bonne alternative.
    Je teste ça dessuite

  8. #8
    Membre actif Avatar de padodanle51
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 389
    Points : 230
    Points
    230
    Par défaut
    ça marche!
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Snowden refuse d'utiliser un iPhone pour des raisons de sécurité
    Par Michael Guilloux dans le forum Développement iOS
    Réponses: 34
    Dernier message: 03/02/2015, 11h09
  2. Réponses: 7
    Dernier message: 18/01/2015, 17h36
  3. [Toutes versions] Une classe pour des TextBoxs formatés
    Par patricktoulon dans le forum Contribuez
    Réponses: 5
    Dernier message: 18/03/2013, 18h59
  4. [VB6] load de shapes dans une classe ? (pour faire des contours)
    Par hpfx dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 07/06/2011, 14h59
  5. Une classe pour mouler des instances qui soient des classes
    Par eyquem dans le forum Général Python
    Réponses: 2
    Dernier message: 03/09/2009, 17h09

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