我正在尝试学习如何使用 Zenject 和 unity,我遇到了一个特殊问题,我不知道它是否有可能仅使用 Zenject 的 api 的解决方案。
假设我有 MethodA、MethodB 和 MethodC,以及一个 SignalA。
是否可以制作这个序列:
SignalA.Fire() => MethodA (until released/finished)
=> MethodB (until released/finished)
=> MethodC (until released/finished)
现在我有这段代码:
private void BindSignalA()
{
Container.DeclareSignal<SignalA>().RunSync();
Container.BindSignal<SignalA>().ToMethod<MethodA>(handler => handler.Execute).FromNew();
Container.BindSignal<SignalA>().ToMethod<MethodB>(handler => handler.Execute).FromNew();
Container.BindSignal<SignalA>().ToMethod<MethodC>(handler => handler.Execute).FromNew();
}
MethodA 看起来像这样:
public class MethodA
{
public async void Execute()
{
await new WaitUntil(() => false);
}
}
所以预期的结果是 MethodB 和 MethodC 永远不会被执行。
但实际结果是所有的Methods都被执行了。
有没有使用 Zenject 的 api 来实现这一点的解决方案?
感谢您的帮助,如果需要更多信息,我很想知道。