public void Publish <TEvent, TArgs>(TArgs args) where TEvent : IEvent <TArgs> { if (typeof(ICoreEvent).IsAssignableFrom(typeof(TEvent)) || !FakeNonCoreEvents) { _coreEventContext.Publish <TEvent, TArgs>(args); } else { _fakeEventContext.Publish <TEvent, TArgs>(args); } }