Я хотел бы использовать container.RegisterTypes для регистрации всех классов, которые являются производными от определенного базового класса
Я пробовал RegisterTypes со всеми классами, которые IsSubclassOf (typeof (FeatureBase)), но не знаю, как настроить сопоставления
class Program
{
static void Main(string[] args)
{
var container = new UnityContainer();
container.RegisterTypes(
AllClasses.FromLoadedAssemblies().Where(type => type.IsSubclassOf(typeof(FeatureBase))),
WithMappings.FromMatchingInterface,
WithName.TypeName,
WithLifetime.Transient);
var features = container.Resolve<List<FeatureBase>>();
}
}
public class FeatureBase { }
public class FeatureA : FeatureBase { }
public class FeatureB : FeatureBase { }
объекты должны содержать список всех классов, полученных из FeatureBase.
Я знаю, как заставить это работать, если я использовал интерфейс для своих классов (т.е. IFeature), но хочу знать, возможно ли использовать базовый класс вместо интерфейса.