注册程序集也会注册枚举

时间:2016-08-16 14:22:13

标签: c# asp.net-mvc-4 dependency-injection dryioc

我在申请中使用DRYIOC进行DI。我在我的MVC应用程序中有接口,我想注册到dryIOC。所以我使用RegisterMany如下。

container.RegisterMany(new[] { Assembly.Load(DIAssemblyCollection["WebAssembly"]) }, 
    serviceTypeCondition: type => type.IsInterface, 
    setup: Setup.With(allowDisposableTransient: true));

但我收到的错误如下

  

未指定如何为具有0个公共构造函数的实现类型Web.Enums.Enum1选择单个构造函数。

1 个答案:

答案 0 :(得分:1)

看起来像个bug,但需要先查看代码。

同时你可以只过滤实现类型,只保留类:

container.RegisterMany(
    Assembly.Load(DIAssemblyCollection["WebAssembly"])
        .GetLoadedTypes()
        .Where(type => type.IsClass), 
    serviceTypeCondition: type => type.IsInterface, 
    setup: Setup.With(allowDisposableTransient: true));

Live example

更新

已修复DryIoc 2.7