У меня есть следующий сервис:
public class Service
{
private List<Model> _modelList = new List<Model>();
public List<Model> Modellist
{
get { return _modelList ; }
private set
{
_modelList = value;
NotifyStateChanged();
}
}
public event Action OnChange;
public void NotifyStateChanged() => OnChange?.Invoke();
}
и обычно используется как:
protected override void OnInitialized()
{
_Service.OnChange += StateHasChanged;
}
Но я хочу сделать это generic c и получить событие, используя отражение. Я безуспешно попробовал следующее:
protected override void OnInitialized()
{
var backingField = Service.GetType().GetField("OnChange", BindingFlags.Instance | BindingFlags.NonPublic);
var delegateInstance = (Action)backingField.GetValue(Service);
delegateInstance += StateHasChanged;
}
Как мне заставить это работать?
Большое спасибо!