public static void MapEventImplementations <T>(this ITypeMapper mapper, Assembly assembly) where T : IMetadata { var implementations = assembly.GetTypes().Where(t => typeof(IEvent).IsAssignableFrom(t) && !t.IsAbstract && t.IsClass); foreach (var implementation in implementations) { var name = implementation.Name.ToKebabCase(); mapper.MapEvent(name, implementation); mapper.MapMetadata <T>(name); } }