public void Raise() { if (_signalTypeClass == null) { return; } var signal = Activator.CreateInstance(_signalTypeClass); for (var index = 0; index < _paramFieldInfos.Length; index++) { var signalField = _paramFieldInfos[index]; if (_parameters.Length > index) { signalField.SetValue(signal, _parameters[index]); } } if (_fireAbstract) { _signalBus.AbstractFire(signal); } else { _signalBus.Fire(signal); } }