.NET 4.x Получение наследников интерфейса - C#
Формулировка задачи:
Унаследовал несколько классов от интерфейса, нужно их получить, чтобы выполнить некоторый метод, помеченный как override. Заранее спасибо!
Решение задачи: «.NET 4.x Получение наследников интерфейса»
textual
Листинг программы
public abstract class Inventory : Double.IInventory
{
public static List<Type> childTypes = new List<Type>();
public static List<Inventory> inventories = new List<Inventory>();
public abstract string Name
{
get;
protected set;
}
public static List<Inventory> InventoryList
{
get
{
return inventories;
}
}
static Inventory()
{
Type ourtype = typeof(Inventory);
IEnumerable<Type> list = Assembly.GetAssembly(ourtype).GetTypes().Where(type => type.IsSubclassOf(ourtype));
foreach (var item in list)
{
if (item.BaseType == ourtype)
childTypes.Add(item);
}
}
public abstract Inventory Seen(Magazine mag);
public static List<Inventory> ToListII<T>(List<T> weap)
{
List<Inventory> iInventory = new List<Inventory>();
foreach (var item in weap)
{
iInventory.Add((item as Inventory));
}
return iInventory;
}
public abstract void Buy(Magazine mag);
}