Inheritance: System.Attribute
Esempio n. 1
0
        void LoadDemoList()
        {
            this.lstDemoList.Items.Clear();
            var             demoBaseType = typeof(DemoBase);
            var             thisAssem    = System.Reflection.Assembly.GetAssembly(this.GetType());
            List <DemoInfo> demoInfoList = new List <DemoInfo>();

            foreach (var t in thisAssem.GetTypes())
            {
                if (demoBaseType.IsAssignableFrom(t) && t != demoBaseType)
                {
                    string   demoTypeName = t.Name;
                    object[] notes        = t.GetCustomAttributes(typeof(DemoNoteAttribute), false);
                    string   noteMsg      = null;
                    if (notes != null && notes.Length > 0)
                    {
                        //get one only
                        DemoNoteAttribute note = notes[0] as DemoNoteAttribute;
                        if (note != null)
                        {
                            noteMsg = note.Message;
                        }
                    }
                    demoInfoList.Add(new DemoInfo(t, noteMsg));
                }
            }
            demoInfoList.Sort((d1, d2) =>
                              d1.DemoType.Name.CompareTo(d2.DemoType.Name));
            foreach (var demo in demoInfoList)
            {
                this.lstDemoList.Items.Add(demo);
            }
        }