DryIoc - 南希引导程序?

DryIoc - Nancy Bootstrapper?

我正在尝试为 DryIoc(v2.0 预览版)创建 nancy 引导程序。一般来说,大多数事情看起来都很简单,但是 DryIoc 似乎并不明显支持 Nancy 依赖于其引导的事情之一。

内置的 tinyioc 容器将在面对具有两个 'same length' 构造函数(即相同数量的参数,但它们属于不同类型)的类型时解析它具有完整类型注册集的类型对于.

当 运行 我的引导程序时,在 RegisterTypes 方法中抛出异常:

Additional information: Unspecified how to select single constructor for implementation type Nancy.ViewEngines.FileSystemViewLocationProvider with 2 public constructors.

我需要在我的 DryIoc 实现中做的事情可能非常简单,但我还没有弄清楚。 有什么建议请回复!

我当前的 nancy 引导程序实现:Bitbucket Snippet

默认情况下,DryIoc 需要单个 public 构造函数来注入依赖项。但它可以使用规则为每个容器定制。根据您的情况,您可以按如下方式自定义构造函数选择:

var container = new Container(rules => 
    rules.With(FactoryMethod.ConstructorWithResolvableArguments));

但是如果为每个 Container 设置此行为可能有点矫枉过正,您可以针对特定注册进行设置:

container.Register<IService, SomeService>(made: Made.Of(FactoryMethod.ConstructorWithResolvableArguments));

可以找到更完整的用法示例 here

更新:

Nancy 集成包已发布:Nancy.Bootstrappers.DryIoc