c#自定义属性能否实现订阅/取消订阅方法?
我正在使用Zenject,但这也适用于其他框架。我对必须复制/粘贴的锅炉铭牌代码不感兴趣。在这种情况下,OnEnable应该订阅一个信号,OnDisable应该取消订阅。可以编写一个属性使其更紧凑吗 例:c#自定义属性能否实现订阅/取消订阅方法?,c#,unity3d,attributes,zenject,C#,Unity3d,Attributes,Zenject,我正在使用Zenject,但这也适用于其他框架。我对必须复制/粘贴的锅炉铭牌代码不感兴趣。在这种情况下,OnEnable应该订阅一个信号,OnDisable应该取消订阅。可以编写一个属性使其更紧凑吗 例: 这是可能的吗?如果您希望在所有情况下都具有全局性的这种行为,那么可能最理想的情况是,当拥有事件处理程序的对象被禁用时,SignalBus本身不触发事件处理程序。如果可以,我认为这将修改Zenject?但是,这可以应用于任何类型的函数,可以是“Start”或“OnButtonClick”等。如果
这是可能的吗?如果您希望在所有情况下都具有全局性的这种行为,那么可能最理想的情况是,当拥有事件处理程序的对象被禁用时,SignalBus本身不触发事件处理程序。如果可以,我认为这将修改Zenject?但是,这可以应用于任何类型的函数,可以是“Start”或“OnButtonClick”等。如果您在所有情况下都希望这种行为是全局的,那么可能最理想的情况是,当拥有事件处理程序的对象被禁用时,信号总线本身不会触发事件处理程序,我想那是对Zenject的修改?但是,这可以应用于任何类型的函数,可以是“开始”或“OnButtonClick”等。
private void Construct(SignalBus signalBus) { _signalBus = signalBus; }
private void OnEnable() { _signalBus.Subscribe<MyCustomPropertiesChangedSignal>(HandleMyCustomPropertiesChanged); }
private void OnDisable() { _signalBus.TryUnsubscribe<MyCustomPropertiesChangedSignal>(HandleMyCustomPropertiesChanged); }
[SubscribeEnable (MyCustomPropertiesChangedSignal)]
void HandleMyCustomPropertiesChanged (MyCustomPropertiesChangedSignal signal)
{
....
}