foreach (var item in assembly.getexecutingassembly().gettypes() .where(x => x.basetype == typeof(item))) { combobox1.items.add(item); } combobox1.displaymember = "name"; can modified list include classes derived 'item' if 2 or more times removed? (ie: x.basetype.basetype == typeof(item) etc.)
also, done filter out abstract classes?
a simple approach use isassignablefrom.
foreach (var item in assembly.getexecutingassembly().gettypes() .where(x => typeof(item).isassignablefrom(x) && !x.isabstract)) { //handle each item } assuming "handle each item console.writeline(item), , had class structure:
class itembase {} class item : itembase {} class superitem : item {} abstract class supersuperitem : superitem{} class ultimateitem : supersuperitem {} the output be:
item
superitem
ultimateitem
note in case isassignablefrom returns true itself, can omit adding && x != typeof(item) where clause.
Comments
Post a Comment