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方法中返回對應實例