/// <summary> /// Register entity mapping from annonated types /// </summary> /// <param name="sessionFactory"></param> /// <param name="assembly"></param> public static void MapEntitiesWithAnnonations(this ISessionFactory sessionFactory, Assembly assembly) { Expect.IsNotNull(sessionFactory, nameof(sessionFactory)); Expect.IsNotNull(assembly, nameof(assembly)); var genericMethod = typeof(MappingFactory).GetMethod("CreateEntityMappingFromAnnonations", BindingFlags.Public | BindingFlags.Static); Expect.IsNotNull(genericMethod, nameof(genericMethod)); var annonatedTypes = assembly.GetExportedTypes() .Where(IsAnnonatedEntityType) .ToArray(); foreach (var type in annonatedTypes) { var createMethod = genericMethod.MakeGenericMethod(type); var mapper = createMethod.Invoke(null, new object[0]); sessionFactory.RegisterMapper(type, mapper); } }