我想对多种类型注册做一个简单的解析(最终注入了构造函数,但是使用 .Resolve 来查看 Unity 是否能够完成这些事情。
在以下每种情况下,Unity 解决了 0 个项目,而它应该解决了 2 个项目。
是否有一些统一的开关可以开启 2007 年后的行为?还是我只是严重遗漏了什么?
这是我的代码:
public interface IFoo {}
public class Foo1 : IFoo{}
public class Foo2 : IFoo{}
class Program
{
static void Main(string[] args)
{
var container = new UnityContainer();
container.RegisterType<IFoo, Foo1>();
container.RegisterType<IFoo, Foo2>();
// container.Resolve<IEnumerable<IFoo>>(); returns 0
// container.ResolveAll<IFoo>(); returns 0
var foos = container.Resolve<IFoo[]>();
Console.WriteLine(foos.Count());
Console.ReadLine();
}
}