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 :

Injecter un custom attribute


Sujet :

C#

  1. #1
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut Injecter un custom attribute
    Bonjour

    J'ai déjà posé ma question sur le forum général .net, section framework, mais peut être rencontrera-t-elle plus de succés ici, vu que le 'traffic' semble être plus important (auquel cas je supprimerais la premiére file).

    J'ai un petit soucis pour lequel je n'ai imaginé pour l'instant qu'une seule solution qui consisterait à "injecter" un nouveau custom attribute à une classe compilée.

    Or, je n'ai aucune expérience sur les possibilités d'injection de code à la volée avec .Net (même si je sais que c'est possible).

    Donc, pour faire court, considérons que j'ai une classe A public & sealed présente dans un assembly, sans accés aux sources, et je souhaite ajouter à cette classe l'attribut Editor (en réalité j'ai besoin de patcher le BindUITypeEditor utilisé comme éditeur pour la classe ActivityBind du WWF; pour cela la seule possibilité que je vois est de faire "voir" par le designer un attribut Editor pour cette classe : si vous voyez une autre possibilité, je suis réceptif à toute suggestion).

    Merci !

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    si vous voyez une autre possibilité, je suis réceptif à toute suggestion
    Pour l'injection d'attribut, c'est pas jouable à ma connaissance.

    Par contre il y a toujours la méthode habituelle quand on doit traiter avec des classes mal faites qui n'ont pas été prévues pour être réutilisables/testables (comme il y en a des platrées dans le framework .NET, malheureusement).

    Tu te fais une classe wrapper qui contient une instance de la classe qui t'intéresse, tu en reproduis l'interface publique et tu transmets les appels. Là tu peux ajouter tous les attributs que tu veux (entre autres choses).
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Maniak Voir le message
    Pour l'injection d'attribut, c'est pas jouable à ma connaissance.
    Dont acte ....

    Par contre il y a toujours la méthode habituelle quand on doit traiter avec des classes mal faites qui n'ont pas été prévues pour être réutilisables/testables (comme il y en a des platrées dans le framework .NET, malheureusement).

    Tu te fais une classe wrapper qui contient une instance de la classe qui t'intéresse, tu en reproduis l'interface publique et tu transmets les appels. Là tu peux ajouter tous les attributs que tu veux (entre autres choses).
    Je te remercie pour ta réponse, mais elle est ne m'est, hélas, pas très utile : il est évident que c'est la solution que j'aurais appliquée si j'avais la "main" sur le client de la classe; or, ce n'est pas le cas, (le client ici, c'est le WF Designer de Microsoft !!! et oui, je sais aussi que je peux réécrire un designer, mais ici, c'est assez inapprorié pour des raisons de contraintes de déploiement) sinon, bien évidemment, je n'aurais pas cherché une méthode pour "patcher" le comportement de la classe.

    Merci, néanmoins.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    le client ici, c'est le WF Designer de Microsoft !!!
    Ah bah j'ai pas encore mis les pieds là-dedans, donc pas forcément d'une grande aide, en effet :)

    Citation Envoyé par Bluedeep Voir le message
    sinon, bien évidemment, je n'aurais pas cherché une méthode pour "patcher" le comportement de la classe.
    En même temps si on pouvait patcher si facilement le comportement des classes du framework, on pourrait faire des trucs un peu exotiques. Et pas très sécurisés.

    Donc s'ils n'ont rien prévu pour qu'on puisse étendre les fonctionnalités existantes...
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

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

Discussions similaires

  1. Custom attribute et reflection
    Par nonoxp dans le forum C#
    Réponses: 2
    Dernier message: 26/09/2013, 11h19
  2. [JAXB 2.0] customization attribute
    Par noOneIsInnocent dans le forum Persistance des données
    Réponses: 1
    Dernier message: 26/06/2008, 10h06
  3. Injecter un Custom Attribute
    Par Bluedeep dans le forum Framework .NET
    Réponses: 2
    Dernier message: 19/11/2007, 16h27
  4. [C#] Custom attribute
    Par Mathieu.Nanoux dans le forum Framework .NET
    Réponses: 2
    Dernier message: 16/05/2007, 14h39

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