我正在使用Nancy和TinyIoC来解决依赖关系.
特别需要一个依赖项是应用程序生命周期单例.
如果我使用默认构造函数,它可以工作:
container.Register<IFoo, Foo>().AsSingleton(); // WORKS
Run Code Online (Sandbox Code Playgroud)
但是如果我在构造函数上使用一些参数来尝试它,它不会:
container.Register<IFoo>((c, e) => new Foo("value", c.Resolve<ILogger>())).AsSingleton();
// FAILS with error "Cannot convert current registration of Nancy.TinyIoc.TinyIoCContainer+DelegateFactory to singleton"
Run Code Online (Sandbox Code Playgroud)
没有.AsSingleton(),它再次起作用,但我没有得到一个单身人士:
container.Register<IFoo>((c, e) => new Foo("value", c.Resolve<ILogger>()));
// Works, but Foo is not singleton
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我认为错误应该是显而易见的,但我找不到它.我用完了所有google-foo.
代码在这里运行:
public class Bootstrapper : DefaultNancyBootstrapper
{
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
base.ConfigureApplicationContainer(container);
// here
}
}
Run Code Online (Sandbox Code Playgroud) 我已经安装了vundle(git clone)vim vundle软件包管理器。看来我什至无法安装单个插件。我想卸载它,并从vim重新开始。有什么建议么?