public static ISharpPlugBuilder AddAutoMapperPlug(this ISharpPlugBuilder builder, params Assembly[] assemblies) { if (assemblies == null || assemblies.Length <= 0) { throw new ArgumentNullException("assemblies args is null or length with 0"); } Mapper.Initialize(config => { foreach (var assembly in assemblies) { var types = from type in assembly.GetTypes() let refType = type.GetReflector() where refType.IsDefined(typeof(AutoMapAttribute)) || refType.IsDefined(typeof(MapToAttribute)) || refType.IsDefined(typeof(MapFromAttribute)) select type; foreach (var type in types) { foreach (var autoMapAttribute in type.GetReflector().GetCustomAttributes <MapAttributeBase>()) { autoMapAttribute.CreateMap(config, type); } } var mappingTypes = assembly.GetTypes().Where(o => o.GetInterfaces().Contains(typeof(IMapping))).ToArray(); foreach (var mapingType in mappingTypes) { ((IMapping)Activator.CreateInstance(mapingType, true)).CreateMapping(config); } } }); return(builder); }
public static ISharpPlugBuilder AddSharpPlugSwaggerGen(this ISharpPlugBuilder builder, Action <SharpPlugSwaggerGenOptions> setupAction) { builder.Services.Configure <MvcOptions>(c => c.Conventions.Add(new SwaggerApplicationConvention())); builder.Services.Configure(setupAction ?? (opts => { })); builder.Services.AddTransient(CreateSwaggerProvider); return(builder); }
/// <summary> /// Auto Add RouterAttribute And HttpMethodAttribute /// </summary> /// <param name="builder"></param> /// <param name="setupAction"></param> /// <returns></returns> public static ISharpPlugBuilder AddWebApiRouter(this ISharpPlugBuilder builder, Action <SharpPlugRouterOptions> setupAction = null) { var options = new SharpPlugRouterOptions() { CustomRule = new Dictionary <string, HttpVerbs>() }; setupAction?.Invoke(options); builder.Services.Configure <SharpPlugRouterOptions>(opt => { opt.CustomRule = options.CustomRule; }); builder.Services.Configure <MvcOptions>(c => c.Conventions.Add(new SharpPlugRouterActionModelConvention(options))); return(builder); }
public static ISharpPlugBuilder AddElasticSearchPlug(this ISharpPlugBuilder builder, Action <ElasticSearchOptions> setupAction) { builder.Services.Configure(setupAction); builder.Services.AddTransient <ISharpElasticsearch, SharpElasticSearch>(); return(builder); }
/// <summary> /// 传入程序集,注册依賴关系 /// </summary> /// <param name="builder"></param> /// <param name="assembly"></param> public static ISharpPlugBuilder Register(this ISharpPlugBuilder builder, params Assembly[] assembly) { assembly.AsParallel().ForAll(ass => DefaultRegister(builder.Services, ass)); return(builder); }
/// <summary> /// Auto Add RouterAttribute And HttpMethodAttribute /// </summary> /// <param name="builder"></param> /// <returns></returns> public static ISharpPlugBuilder AddEntityFramework(this ISharpPlugBuilder builder) { builder.Services.AddTransient(typeof(Repository <,>)); return(builder); }