我有Calculator
顯示在控制檯或窗口消息框的結果。 如果我有一個類型爲IOutputService
,則不存在問題。 現在,我有兩種類型 - ConsoleOutputService
和MessageBoxOutputService
。統一IoC註冊/解析兩個類與接口和兩種
如何在構造函數中創建/註冊具有不同類型的兩個計算器並在運行時使用計算器?
class Mockup
{
void Bootstrapping()
{
UnityContainer container = new UnityContainer();
container.RegisterType<IInputService, ConsoleInputService>();
container.RegisterType<IOutputService, ConsoleOutputService>("Console");
container.RegisterType<IOutputService, MessageBoxOutputService>("Window");
// expect with ConsoleOutputService
--> Pseudo code container.RegisterType<ICalculator, Calculator>("Cal1");
// expect with MessageBoxOutputService
--> Pseudo code container.RegisterType<ICalculator, Calculator>("Cal2");**
}
void RunConsole()
{
ICalculator lp = container.Resolve<ICalculator>("Cal1");
lp.Run();
}
void RunWindow()
{
ICalculator lp = container.Resolve<ICalculator>("Cal2");
lp.Run();
}
}
public class Calculator : ICalculator
{
public Calculator(IInputService inputService, IOutputService outputService)
{
InputService = inputService;
OutputService = outputService;
}
public void Run()
{
}
}
感謝您的意見。這非常有幫助。 – DDrim 2012-03-06 16:46:12
這對我很有幫助...謝謝。 – DDrim 2012-03-19 16:57:05