/// <summary> /// 初始化一个<see cref="IocInitializerBase"/>类型的新实例 /// </summary> protected IocInitializerBase() { AssemblyFinder = new DirectoryAssemblyFinder(); TransientTypeFinder = new TransientDependencyTypeFinder(); LifetimeScopeTypeFinder = new LifetimeScopeDependencyTypeFinder(); SingletonTypeFinder = new SingletonDependencyTypeFinder(); }
/// <summary> /// 初始化一个<see cref="ServiceBuildOptions"/>类型的新实例 /// </summary> public ServiceBuildOptions() { AssemblyFinder = new DirectoryAssemblyFinder(); TransientTypeFinder = new TransientDependencyTypeFinder(); ScopeTypeFinder = new ScopeDependencyTypeFinder(); SingletonTypeFinder = new SingletonDependencyTypeFinder(); }
/// <summary> /// 初始化 /// </summary> public static void InitIoc() { var assemblies = new DirectoryAssemblyFinder().FindAll(); var builder = new ContainerBuilder(); // Get your HttpConfiguration. var config = GlobalConfiguration.Configuration; Type PerLifetimeScopeType = typeof(IScopeDependency); Type PerDependencyType = typeof(ITransientDependency); Type SingleInstanceType = typeof(ISingletonDependency); builder.RegisterAssemblyTypes(assemblies.ToArray()) .Where(type => PerLifetimeScopeType.IsAssignableFrom(type) && !type.IsAbstract) .AsSelf() //自身服务,用于没有接口的类 .AsImplementedInterfaces() //接口服务 .PropertiesAutowired() //属性注入 .InstancePerLifetimeScope(); //PerLifetimeScope builder.RegisterAssemblyTypes(assemblies.ToArray()) .Where(type => PerDependencyType.IsAssignableFrom(type) && !type.IsAbstract) .AsSelf() //自身服务,用于没有接口的类 .AsImplementedInterfaces() //接口服务 .PropertiesAutowired() //属性注入 .InstancePerDependency(); //PerDependency builder.RegisterAssemblyTypes(assemblies.ToArray()) .Where(type => SingleInstanceType.IsAssignableFrom(type) && !type.IsAbstract) .AsSelf() //自身服务,用于没有接口的类 .AsImplementedInterfaces() //接口服务 .PropertiesAutowired() //属性注入 .SingleInstance(); //SingleInstance builder.RegisterType <WebApiIocResolver>().As <IIocResolver>().AsSelf() //自身服务,用于没有接口的类 .AsImplementedInterfaces() //接口服务 .PropertiesAutowired() //属性注入; .SingleInstance(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).AsSelf().AsImplementedInterfaces().PropertiesAutowired(); builder.RegisterWebApiFilterProvider(config); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); }
protected override void Load(ContainerBuilder builder) { Type baseType = typeof(IDependency); DirectoryAssemblyFinder daf = new DirectoryAssemblyFinder(); var assemblyss = daf.FindAll(); //调试用 //var AllServices = assemblyss // .SelectMany(s => s.GetTypes()) // .Where(p => baseType.IsAssignableFrom(p) && p != baseType).ToArray(); builder.RegisterAssemblyTypes(assemblyss) .Where(p => baseType.IsAssignableFrom(p) && p != baseType) .AsImplementedInterfaces().PropertiesAutowired() .InstancePerLifetimeScope(); //注入泛型仓储服务,支持多上下文 builder.RegisterGeneric(typeof(Repository <,>)).As(typeof(IRepository <,>)).PropertiesAutowired().InstancePerLifetimeScope(); }
public static void RegisterMappings() { //获取所有IProfile实现类4 var assembly = new DirectoryAssemblyFinder().FindAll().FirstOrDefault(a => a.FullName.Contains("Sy.Module.Mapper.Customs")); var allType = assembly.GetTypes().Where(a => typeof(IProfile).IsAssignableFrom(a)); //var allType = //Assembly // .GetEntryAssembly()//获取默认程序集 // .GetReferencedAssemblies()//获取所有引用程序集 // .Select(Assembly.Load) // .SelectMany(y => y.DefinedTypes) // .Where(type => typeof(IProfile).GetTypeInfo().IsAssignableFrom(type.AsType())); foreach (var typeInfo in allType) { //注册映射 AutoMapper.Mapper.Initialize(y => { y.AddProfiles(typeInfo); // Initialise each Profile classe }); } }
/// <summary> /// 初始化一个<see cref="IocBuilderBase"/>类型的新实例 /// </summary> /// <param name="services">服务信息集合</param> protected IocBuilderBase(IServiceCollection services) { AssemblyFinder = new DirectoryAssemblyFinder(); _services = services.Clone(); _isBuilded = false; }
/// <summary> /// 初始化一个<see cref="EntityMapperAssemblyFinder"/>类型的新实例 /// </summary> public EntityMapperAssemblyFinder() { AllAssemblyFinder = new DirectoryAssemblyFinder(); }
/// <summary> /// 初始化一个<see cref="ControllerTypeFinder"/>类型的新实例 /// </summary> public ControllerTypeFinder() { AssemblyFinder = new DirectoryAssemblyFinder(); }
/// <summary> /// 初始化一个<see cref="TransientDependencyTypeFinder"/>类型的新实例 /// </summary> public TransientDependencyTypeFinder() { AssemblyFinder = new DirectoryAssemblyFinder(); }
/// <summary> /// 初始化一个<see cref="IocBuilderBase"/>类型的新实例 /// </summary> protected IocBuilderBase() { AssemblyFinder = new DirectoryAssemblyFinder(); }
/// <summary> /// 初始化一个<see cref="EntityTypeFinder"/>类型的新实例 /// </summary> public EntityTypeFinder() { AssemblyFinder = new DirectoryAssemblyFinder(); }
/// <summary> /// 初始化一个<see cref="SingletonDependencyTypeFinder"/>类型的新实例 /// </summary> public SingletonDependencyTypeFinder() { AssemblyFinder = new DirectoryAssemblyFinder(); }
/// <summary> /// 初始化一个<see cref="ScopeDependencyTypeFinder"/>类型的新实例 /// </summary> public ScopeDependencyTypeFinder() { AssemblyFinder = new DirectoryAssemblyFinder(); }
/// <summary> /// 初始化一个<see cref="HubTypeFinder"/>类型的新实例 /// </summary> public HubTypeFinder() { AssemblyFinder = new DirectoryAssemblyFinder(); }