Calculator
はコンソールまたはウィンドウのメッセージボックスに結果を表示します。 IOutputService
の1つのタイプがある場合は問題ありません。 ここでは、ConsoleOutputService
とMessageBoxOutputService
の2種類があります。Unity IoCはインターフェイスと2つのタイプの2つのクラスを登録/解決します
コンストラクタで異なるタイプの2つの電卓を作成/登録し、実行時に電卓を使用するにはどうすればよいですか?
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
それは私にとって非常に役に立ちます...ありがとう。 – DDrim