Регистрация по соглашению для классов, производных от базового класса - PullRequest
0 голосов
/ 11 мая 2019

Я хотел бы использовать 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), но хочу знать, возможно ли использовать базовый класс вместо интерфейса.

...