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 savoir si une DLL est COM visible ?


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 252
    Points : 124
    Points
    124
    Par défaut Comment savoir si une DLL est COM visible ?
    Bonjour,

    Comment savoir si une DLL est COM visible ?

    Par exemple System.Drawing semble être COM visible, alors que System.Data non...

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    System.Drawing n'est pas visible par COM a priori...

    Pour le savoir tu peux vérifier si l'assembly a l'attribut ComVisible, et si la valeur de l'attribut est true :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    static bool IsComVisible(Assembly assembly)
    {
        var attribute = assembly.GetCustomAttributes(typeof(ComVisibleAttribute), true)
                                .FirstOrDefault() as ComVisibleAttribute;
        return (attribute != null && attribute.Value);
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 252
    Points : 124
    Points
    124
    Par défaut
    C'est étrange, pourquoi puis-je l'enregistré avec regasm alors ?

    Si non n'y a-t-il pas un moyen plus rapide que de coder un méthode ?

    Merci en tout cas pour cette première réponse !

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par sokai Voir le message
    C'est étrange, pourquoi puis-je l'enregistré avec regasm alors ?
    Euh... aucune idée. En tous cas l'assembly a l'attribute ComVisible(false)
    Citation Envoyé par sokai Voir le message
    Si non n'y a-t-il pas un moyen plus rapide que de coder un méthode ?
    Bah une méthode de 2 lignes, ça me semble déjà pas mal rapide... tu t'attends quand même pas à ce qu'il y ait un mot-clé du langage juste pour ça ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 252
    Points : 124
    Points
    124
    Par défaut
    Je pensais à une information dans les propriétés de la DLL ou sur MSDN ou un tool dans VS. Ca me semble étrange de devoir coder pour avoir cette information.

    Dans tous les cas, merci bcp pour ton aide Thomas.


  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Ah ok... je pensais que tu voulais, à partir du code, savoir si un assembly était visible par COM
    Si tu veux le faire manuellement, tu peux utiliser un outil comme .NET Reflector ou ILSpy

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

Discussions similaires

  1. Comment savoir quand une JFrame est rafraichie?
    Par mardona dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 19/08/2005, 12h20
  2. Comment savoir si une connexion est deja ouverte?
    Par ghor_bey dans le forum Web & réseau
    Réponses: 3
    Dernier message: 29/07/2005, 15h17
  3. Réponses: 6
    Dernier message: 01/07/2005, 15h06
  4. Comment savoir si une variable est initialisée ?
    Par nabix dans le forum Général Python
    Réponses: 8
    Dernier message: 10/03/2005, 15h12
  5. Comment savoir qu'une fonction est standard ?
    Par D[r]eadLock dans le forum C
    Réponses: 5
    Dernier message: 24/03/2003, 14h42

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