TinyIoCContainer 注册与泛型



我正在使用.NET Nancy的TinyIoCContainer进行依赖注入。我正在尝试通过泛型注册一个接口及其实现,如下所示:

Register(container, typeof(IUserService), typeof(UserService));
private void Register<TInterface, TImplementation>(TinyIoCContainer container)
                        where TInterface : class
                        where TImplementation : class, TInterface
{
    container.Register<TInterface, TImplementation>();
}

这给了我以下例外:

无法注册类型 System.Type - 抽象类或接口是 不是单例工厂的有效实现类型。

这表明SingletonFactory不能使用泛型。我还尝试将该类型注册为多实例:

container.Register<TInterface, TImplementation>().AsMultiInstance();

我得到了同样的例外。

我能够找到的最接近的问题是关于一个稍微不同的问题,即通用接口:https://github.com/NancyFx/Nancy/issues/2747 和https://github.com/grumpydev/TinyIoC/issues/8

有没有人能够做到这一点(也许是通过反思?或者,是否有开箱即用的 IoC 容器支持它?

更新:

看起来这是TinyIoCContainer的一个怪癖。该代码在 UnityContainer 上运行良好。

相关内容

  • 没有找到相关文章

最新更新