Autofac:如何注册通用集合?



我有几个类在构造函数中采用IList<IHero>。我想在 Autofac 中注册通用集合List<IHero>,以便每当 Autofac 需要解析需要IList<IHero的服务时,它都会返回一个新的List<IHero>实例。下面的代码可以编译,但我在运行时收到大量错误消息。

builder.RegisterType<List<IHero>>().As<IList<IHero>>();

我目前的解决方法如下:

var printer = scope.Reseolve<IPrinter>(new TypedParameter(typeof(IList<IHero>), new List<IHero>();

var newEngine = scope.Resolve<IEngine>(new TypedParameter(typeof(IPrinter), printer));

不要自己注册集合。Autofac 为您处理集合。

最新更新