12345678910111213141516171819202122232425262728293031323334353637 |
- using AipGateway.API.Domain.IServices.IUtilities;
- using AutoMapper;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using System.Text;
- using System.Threading.Tasks;
- namespace AipGateway.API.Domain.Common.Utilities
- {
- public class MappingProfiles : Profile
- {
- public MappingProfiles()
- {
- ApplyMappingsFromAssembly(Assembly.GetExecutingAssembly());
- }
- private void ApplyMappingsFromAssembly(Assembly assembly)
- {
- var types = assembly.GetExportedTypes()
- .Where(t => t.GetInterfaces()
- .Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IMapFrom<>)))
- .ToList();
- foreach (var type in types)
- {
- var instance = Activator.CreateInstance(type);
- var methodInfo = type.GetMethod("Mapping")
- ?? type.GetInterface("IMapFrom`1").GetMethod("Mapping");
- methodInfo?.Invoke(instance, new object[] { this });
- }
- }
- }
- }
|