Bonsoir,

J'ai besoin d'un coup de main avec la reflection. Voila j'ai crée une class d'attribut que voila:

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
23
24
25
26
27
28
 
    [AttributeUsage(AttributeTargets.Class)]
    public class BlueCurveAddinAttributes : Attribute
    {
        /// <summary>
        /// Nom de l'Addin
        /// </summary>
        public string Name { get; private set; }
        /// <summary>
        /// Versiond de l'Addin
        /// </summary>
        public string Version { get; private set; }
        /// <summary>
        /// Publicateur de l'Addin
        /// </summary>
        public string Publisher { get; private set; }
        /// <summary>
        /// Description de l'Addin
        /// </summary>
        public string Description { get; private set; }
        public BlueCurveAddinAttributes(string _name, string _version, string _publisher, string _description)
        {
            this.Name = _name;
            this.Version = _version;
            this.Publisher = _publisher;
            this.Description = _description;
        }
    }
J'ai une dll que j'ai marqué comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
    [Export(typeof(IProtocol))]
    [BlueCurveAddinAttributes("Addins.Http", "1.0.0.0", "BlueCurve Project Team", "This addin can do HTTP request")]
    public class AddinsHttp : IProtocol
    {


J'ai écrit un petit code de teste afin de récuperer via reflection les propritétés que j'ai ajouté en faisant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
            Assembly asm = Assembly.LoadFrom(Path.GetFullPath("Addins.Http.dll"));
            BlueCurveAddinAttributes MyAttribute = (BlueCurveAddinAttributes)Attribute.GetCustomAttribute(asm, typeof(BlueCurveAddinAttributes));
            Console.WriteLine(">>> " + MyAttribute.GetType());
Mon problème c'est que j'obtiens une exception systematique comme quoi que MyAttribute est null pourtant j'ai suivie l'exemple de la MSDN.


Merci.