StrangeIoc默认使用的是Event的方式,所以我们要重新绑定一下使用Signal的方式。在MVCSContext下,重写
public override IContext Start()
{
base.Start();
//程序"起点"的修改,使用StartSignal信号来触发
StartSignal startSignal = (StartSignal)injectionBinder.GetInstance<StartSignal>();
startSignal.Dispatch();
return this;
}
protected override void addCoreComponents()
{
base.addCoreComponents();
//先解绑,再重新绑定到SignalCommandBinder
injectionBinder.Unbind<ICommandBinder>();
injectionBinder.Bind<ICommandBinder>().To<SignalCommandBinder>().ToSingleton();
}
protected override void mapBindings()
{
//和以前一样绑定,不过Event的枚举变成了刚刚触发的StartSignal
commandBinder.Bind<StartSignal>().To<StartCommand>();
}