注册程序集也是注册枚举

本文关键字:注册 枚举 程序集 | 更新日期: 2023-09-27 18:02:32

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

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

但是我得到的错误如下

未指定如何为实现类型web . enum选择单个构造函数。包含0个公共构造函数的Enum1。

注册程序集也是注册枚举

似乎是一个bug,但需要先查看代码

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

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

生活例子

更新修复了DryIoc 2.7