Multiple target method invocation wrapper
Why not expose a lambda expression like this (assuming that _subscribers is a field of type List&lt;ICallback&gt;):

private void InvokeCallbacks(Action&lt;ICallback&gt; callbackFunc)
{
    _subscribers.ForEach(callbackFunc);
}


and usage would be:

public void Method1(int a)
{
    InvokeCallbacks(callback =&gt; callback.Method1(a));
}

public void Method2(Foo foo, List&lt;Bar&gt; bars)
{
    InvokeCallbacks(callback =&gt; callback.Method2(foo, bars));
}

public void Method3(Bar bar, Baz baz)
{
    InvokeCallbacks(callback =&gt; callback.Method3(bar, baz));
}