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 :

créer des attributs [motclé("")] dans le code sur Visual Studio


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    médical
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : médical

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut créer des attributs [motclé("")] dans le code sur Visual Studio
    bonjour,

    Pour ceux qui ont déjà remarqué, il est possible de créer des Attributs spéciaux dans le code tel que :

    [Description("......")] et bien d'autres exemples...

    j'ai remarqué aussi que sur des projets personnels tel que Cudafy, il est possible de le faire avec :

    [cudafy]

    donc j'aimerai savoir comment faire pour créer ce genre de mots clés, comme par exemple

    [darkpoulpo]

    qui me permettrai de faire un truc bien précis...

    merci d'avance,

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Parlerais tu des classes attributs qui permettent d'associer des métadonnées aux classes ?

    Si c'est le cas, quel est ton besoin exactement ?

    D'une manière générale, ces classes doivent hériter de la classe Attribute.

    Exemple (si c'est bien ce que tu veux dire ....) :

    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
    	[AttributeUsage(AttributeTargets.Class)]
    	public class ClassGouziGouziAttribute : Attribute
    	{
    	}
     
    	[AttributeUsage(AttributeTargets.Method)]
    	public class MethodGouziGouziAttribute : Attribute
    	{
    	}
     
    	[ClassGouziGouzi]
    	public class MyClass
    	{
    		public void MyMethod1()
    		{
    		}
     
    		[MethodGouziGouzi]
    		public void MyMethod2()
    		{
    		}
    	}
    et tu l'exploites comme cela :

    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
    	class Program
    	{
    		static void test(Type typeToTest)
    		{
    			object[] attrs = typeToTest.GetCustomAttributes(typeof(ClassGouziGouziAttribute), false);
    			if (attrs != null && attrs.Length > 0)
    			{
    				Console.WriteLine("Classe {0} est bien une classe GouziGouzi !!", typeToTest.Name);
    			}
    			else
    			{
    				Console.WriteLine("Classe {0} n'est pas une classe GouziGouzi !!", typeToTest.Name);
    			}
    		}
     
    		public static void Main()
    		{
    			test(typeof(int));
    			test(typeof(MyClass));
    		}
    	}

  3. #3
    Membre confirmé
    Homme Profil pro
    médical
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : médical

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Parlerais tu des classes attributs qui permettent d'associer des métadonnées aux classes ?

    Si c'est le cas, quel est ton besoin exactement ?

    D'une manière générale, ces classes doivent hériter de la classe Attribute.
    oui merci j'ai vu le nom en même temps que tu postais...

    j'en ai besoin pour implémenter dans le code des fonctions de déboguage, et bien d'autres utilités qui m'éviterai de passer par l'ExtensionsClass ou des #define

  4. #4
    Membre confirmé
    Homme Profil pro
    médical
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : médical

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    bon j'ai regardé et je ne sais pas si du coup ça correspond à mon attente, corrigez moi si je me trompe, mais je voulais un réaliser un truc du genre

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [DebugInfos]
    public void methode()
    {
    ...
    }

    et que ça m'affiche l'heure de passage quand on appel cette méthode dans le code, et le temps d’exécution de celle-ci...

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par dark poulpo Voir le message
    mais je voulais un réaliser un truc du genre
    [DebugInfos]
    public void methode()
    {
    ...
    }
    et que ça m'affiche l'heure de passage quand on appel cette méthode dans le code, et le temps d’exécution de celle-ci...
    Pas de méthode simple pour faire cela, en transparence du code existant: il faut injecter le code de trace -via Emit - sur les méthodes qui disposent de l'attribut.

    Pour faire cela,va éventuellement voir du coté de PostSharp, un framework gratuit qui fait de l'AOP (injection de dépendance) et qui pourra répondre à ce genre de besoin. (il faudra que tu codes quand même, mais tu ne partiras pas de 0).

  6. #6
    Membre confirmé
    Homme Profil pro
    médical
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : médical

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    ok, merci, je laisse le topic ouvert quelques jours au cas où d'autres veulent apporter leurs contributions...

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

Discussions similaires

  1. [DOM] Créer des attributs dans un autre namespace
    Par tchize_ dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 19/09/2013, 12h08
  2. Créer des instances de classes EMF dans Eclipse avec une jolie IHM
    Par obernard dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 24/02/2009, 19h21
  3. Réponses: 2
    Dernier message: 29/05/2007, 16h49
  4. Réponses: 1
    Dernier message: 07/05/2007, 16h12
  5. Réponses: 4
    Dernier message: 21/02/2007, 16h46

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