Visibilité d'une classe .Net dans une dll

[Résolu]
Signaler
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Bonjour,


Alors voila, j'ai développé une dll en C# et je l'utilise sur une application windows form. Pour des raisons de clarté, je voudrais cependant caché certaines classes de ma dll au développeur de l'application.
J'ai vu que le mot clé internal servait à cela. Pourtant, cela ne fonctionne pas dans mon cas.

Exemple:
J'ai une classe Animal déclarée de la facon suivante:

internal abstract classAnimal    //Je voudrais la rendre invisible
{
}

et une class dérivant de celle ci:

public classChien : Animal    //Je voudrais la rendre visible
{
}

Et la, c'est le drame : ca ne compile pas.
Je ne peux pas rendre invisible une classe mère (ce qui m'intéresse la plupart du temps) sans impacter la compilation.

Alors, je m'en remets à vous. Quelqu'un aurait-il une idée ?

Merci d'avance,

Bonne journée

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------

3 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Salut,
C'est pas possible !
Si tu utilises une class enfant, alors la class mère doit avoir au minimum la même visibilité....

<hr />
-Blog-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Salut, tu ne peux pas la rendre invisible mais tu peux déclarer le constructeur de ta classe abstraite "internal", ainsi elle ne pourra pas être derivée en dehors de ta dll.
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
25
Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------