Resolve方法可以返回指定类型的所有注册对象列表
public interface IService
{
void SayHello();
}
public class Chinese : IService
{
public void SayHello(){ Console.WriteLine("你好"); }
}
public class English : IService
{
public void SayHello() { Console.WriteLine("Hello"); }
}
public class XXX : IService
{
public void SayHello() { Console.WriteLine("@#$%^&*"); }
}
class Program
{
static void Main(string[] args)
{
IUnityContainer container = new UnityContainer();
container.RegisterType<IService, Chinese>("cn");
//命名注册
container.RegisterType<IService, English>("en");//命名注册
container.RegisterType<IService, XXX>();
var man = container.ResolveAll<IService>();
foreach (var men in man)
{
men.SayHello();
}
Console.Read();
}
}
输出结果:
你好
Hello
非命名注册将不会在ResolveAll方法中返回对应实例