private void PersistSagaInstance(IAccessibleSaga saga) { Type persisterType = reflection.GetGenericTypeOf(typeof(ISagaPersister <>), saga); object persister = serviceLocator.Resolve(persisterType); if (saga.IsCompleted) { reflection.InvokeSagaPersisterComplete(persister, saga); } else { reflection.InvokeSagaPersisterSave(persister, saga); } }