按照约定注册从基类派生的类

时间:2019-05-11 17:47:23

标签: unity-container

我想使用container.RegisterTypes注册从特定基类派生的所有类

我尝试使用IsSubclassOf(typeof(FeatureBase))所有类的RegisterTypes,但不知道如何设置映射

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),但我想知道如何使之工作,但想知道是否可以使用基类代替接口。

0 个答案:

没有答案