public override IRegisterLocator Register(
     Type serviceType1, Type serviceType2, Type implementationType, LifeStyle lifeStyle = LifeStyles.Default, string key = null)
 {
     return(Component.For(serviceType1, serviceType2, implementationType).Include(this, lifeStyle, key));
 }
 public override IRegisterLocator Register <TContract1, TContract2, TImplementation>(
     LifeStyle lifeStyle = LifeStyles.Default, string key = null)
 {
     return(Component.For <TContract1, TContract2>().ImplementedBy <TImplementation>().Include(this, lifeStyle, key));
 }
Example #3
0
 public ComponentAttribute(LifeStyle lifeStyle = LifeStyle.Transient)
 {
     this.LifeStyle = lifeStyle;
 }
 public override IRegisterLocator Register <TContract>(
     TContract instance, LifeStyle lifeStyle = LifeStyles.Default, string key = null)
 {
     return(Component.For <TContract>().Instance(instance).Include(this, lifeStyle, key));
 }
Example #5
0
 public Component(Type baseType, Type concreteType, LifeStyle lifeStyle)
 {
     BaseType = baseType;
     ConcreteType = concreteType;
     LifeStyle = lifeStyle;
 }
Example #6
0
 public void RegisterInstance <TType>(TType instance, LifeStyle life)
     where TType : class
 {
     container.Register <TType>(instance).Life(life);
 }
 /// <summary>Register a implementation type.
 /// </summary>
 /// <param name="implementationType">The implementation type.</param>
 /// <param name="life">The life cycle of the implementer type.</param>
 public static void RegisterType(Type implementationType, LifeStyle life = LifeStyle.Singleton)
 {
     Current.RegisterType(implementationType, life);
 }
Example #8
0
 public DependencyAttribute(Type serviceType, LifeStyle lifeStyle = LifeStyle.Singleton)
 {
     LifeStyle = lifeStyle;
     ServiceType = serviceType;
 }
Example #9
0
        /// <summary>
        /// 根据程序集注册 接口
        /// </summary>
        /// <param name="service"></param>
        /// <param name="assembly"></param>
        /// <param name="predicate"></param>
        /// <param name="lifeStyle"></param>
        /// <returns></returns>
        public static IServiceCollection RegisterAssemblyInterfaces(this IServiceCollection service, Assembly assembly, Func <Type, bool> predicate = null, LifeStyle lifeStyle = LifeStyle.PerLifetimeScope)
        {
            var types = assembly.GetTypes();

            foreach (var implementationType in types)
            {
                if (JumpType(implementationType))
                {
                    continue;
                }


                if (predicate != null)
                {
                    if (predicate(implementationType) == false)
                    {
                        continue;
                    }
                }
                var interfacesTypes = implementationType.GetInterfaces();
                if (interfacesTypes.Length == 1)
                {
                    RegisterType(service, interfacesTypes[0], implementationType, lifeStyle);
                }
            }
            return(service);
        }
Example #10
0
 public static IObjectContainer RegisterType <T, F>(this IObjectContainer container, string name, LifeStyle lifestyle)
 {
     return(container.RegisterType(typeof(F), typeof(T), name, lifestyle));
 }
Example #11
0
        /// <summary>
        /// 根据程序集注册 接口
        /// </summary>
        /// <param name="service"></param>
        /// <param name="assemblyName"></param>
        /// <param name="predicate"></param>
        /// <param name="lifeStyle"></param>
        /// <returns></returns>
        public static IServiceCollection RegisterAssemblyInterfaces(this IServiceCollection service, string assemblyName, Func <Type, bool> predicate = null, LifeStyle lifeStyle = LifeStyle.Singleton)
        {
            var assembly = Assembly.Load(assemblyName);

            return(RegisterAssemblyInterfaces(service, assembly, predicate, lifeStyle));
        }
 public ImplementationInformation(Type type, LifeStyle lifeStyle)
 {
     Type = type;
     LifeStyle = lifeStyle;
 }
 protected override void internalAdd(string name, Type serviceType, object implementTypeOrInstance, LifeStyle lifeStyle){
     var component = new InversionComponent(this){Name = name};
     serviceType = serviceType ??
                             (implementTypeOrInstance is Type
                                  ? (implementTypeOrInstance as Type)
                                  : implementTypeOrInstance.GetType());
     implementTypeOrInstance = implementTypeOrInstance ?? serviceType;
     component.ServiceType = serviceType;
     component.ImplementationType = implementTypeOrInstance is Type
                                        ? (implementTypeOrInstance as Type)
                                        : implementTypeOrInstance.GetType();
     component.ImplementationInstance = implementTypeOrInstance is Type ? null : implementTypeOrInstance;
     component.LifeStyle = lifeStyle;
     Components.Add(component);
 }
Example #14
0
 /// <summary>
 /// 注册
 /// </summary>
 /// <typeparam name="T">对象类型</typeparam>
 /// <param name="interceptTypeList">Aop类型</param>
 /// <param name="serviceName">服务名称</param>
 /// <param name="lifeStyle">生命周期</param>
 public DependencyManage RegisterType <T>(Type[] interceptTypeList, string serviceName = null, LifeStyle lifeStyle = LifeStyle.Singleton)
 {
     Container.RegisterType <T>(interceptTypeList, serviceName: serviceName, lifeStyle: lifeStyle);
     return(this);
 }
 /// <summary>Register a implementer type as a service implementation.
 /// </summary>
 /// <typeparam name="TService">The service type.</typeparam>
 /// <typeparam name="TImplementer">The implementer type.</typeparam>
 /// <param name="life">The life cycle of the implementer type.</param>
 public static void Register <TService, TImplementer>(LifeStyle life = LifeStyle.Singleton)
     where TService : class
     where TImplementer : class, TService
 {
     Current.Register <TService, TImplementer>(life);
 }
Example #16
0
 /// <summary>
 /// 注册
 /// </summary>
 /// <typeparam name="TService">服务类型</typeparam>
 /// <typeparam name="TImplementer">实例类型</typeparam>
 /// <param name="instance">实例值</param>
 /// <param name="serviceName">服务名字</param>
 /// <param name="lifeStyle">生命周期</param>
 public DependencyManage RegisterInstance <TService, TImplementer>(TImplementer instance, string serviceName = null, LifeStyle lifeStyle = LifeStyle.Singleton)
     where TService : class
     where TImplementer : class, TService
 {
     Container.RegisterInstance <TService, TImplementer>(instance, serviceName: serviceName, lifeStyle: lifeStyle);
     return(this);
 }
Example #17
0
 public static ComponentRegistration <T> Life <T>(this ComponentRegistration <T> registration, LifeStyle life) where T : class
 {
     if (life == LifeStyle.Singleton)
     {
         return(registration.LifeStyle.Singleton);
     }
     return(registration.LifeStyle.Transient);
 }
Example #18
0
 public ComponentAttribute(LifeStyle lifeStyle)
 {
     this.LifeStyle = lifeStyle;
 }
Example #19
0
 public void Register <TService, TImpl>(string key, LifeStyle life = LifeStyle.Singleton) where TService : class where TImpl : class, TService
 {
     _windsorContainer.Register(Component.For <TService>().ImplementedBy <TImpl>().Named(key).Life(life));
 }
Example #20
0
 public void RegisterType <TFrom, TTo>(LifeStyle life)
     where TFrom : class
     where TTo : class, TFrom
 {
     container.Register <TFrom, TTo>().Life(life);
 }
Example #21
0
 public void RegisterDefault <TService, TImpl>(LifeStyle life) where TService : class where TImpl : class, TService
 {
     _windsorContainer.Register(Component.For <TService>().ImplementedBy <TImpl>().Named(typeof(TService).FullName).IsDefault().Life(life));
 }
Example #22
0
 public static TinyIoCContainer.RegisterOptions Life(this TinyIoCContainer.RegisterOptions registration, LifeStyle life)
 {
     if (life == LifeStyle.Singleton)
     {
         return(registration.AsSingleton());
     }
     return(registration.AsMultiInstance());
 }
Example #23
0
 public void Register <T>(T instance, LifeStyle life) where T : class
 {
     _windsorContainer.Register(Component.For <T>().Instance(instance).Named(typeof(T).FullName).Life(life));
 }
Example #24
0
 public Configuration SetDefault <TService, TImplementer>(string serviceName = null, LifeStyle life = LifeStyle.Singleton)
     where TService : class
     where TImplementer : class, TService
 {
     ObjectContainer.Register <TService, TImplementer>(serviceName, life);
     return(this);
 }
Example #25
0
 public void Register <T>(T instance, string key, LifeStyle life) where T : class
 {
     _windsorContainer.Register(Component.For <T>().Instance(instance).Named(key).Life(life));
 }
 public override IRegisterLocator Register <TContract>(
     Func <TContract> func, LifeStyle lifeStyle = LifeStyles.Default, string key = null)
 {
     return(Component.For <TContract>().UsingFactoryMethod(func).Include(this, lifeStyle, key));
 }
Example #27
0
 /// <summary>
 /// 注册指定接口的实例
 /// </summary>
 public static void Register <T>(T instance, LifeStyle life = LifeStyle.Singleton) where T : class
 {
     _resolver.Register <T>(instance, life);
 }
 public override IRegisterLocator Register <TContract>(
     Type implementationType, LifeStyle lifeStyle = LifeStyles.Default, string key = null)
 {
     return(Component.For <TContract>().ImplementedBy(implementationType).Include(this, lifeStyle, key));
 }
 /// <summary>
 /// 注册给定类型的实例
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="instance"></param>
 /// <param name="key"></param>
 /// <param name="life"></param>
 public void Register <T>(T instance, string key, LifeStyle life = LifeStyle.Singleton) where T : class
 {
     _container.Register <T>(instance, key, life);
 }
 public ComponentAttribute(LifeStyle lifeStyle)
 {
     LifeStyle = lifeStyle;
 }
 /// <summary>
 /// 注册给定接口的实现
 /// </summary>
 /// <typeparam name="TService"></typeparam>
 /// <typeparam name="TImpl"></typeparam>
 /// <param name="key"></param>
 /// <param name="life"></param>
 public void Register <TService, TImpl>(string key, LifeStyle life = LifeStyle.Singleton)
     where TService : class
     where TImpl : class, TService
 {
     _container.Register <TService, TImpl>(key, life);
 }
Example #32
0
 /// <summary>
 /// 注册
 /// </summary>
 /// <param name="serviceType">服务类型</param>
 /// <param name="implementationType">实例类型</param>
 /// <param name="interceptTypeList">Aop类型</param>
 /// <param name="serviceName">服务名字</param>
 /// <param name="lifeStyle">生命周期</param>
 public DependencyManage RegisterType(Type serviceType, Type implementationType, Type[] interceptTypeList, string serviceName = null, LifeStyle lifeStyle = LifeStyle.Singleton)
 {
     Container.RegisterType(serviceType, implementationType, interceptTypeList, serviceName: serviceName, lifeStyle: lifeStyle);
     return(this);
 }
 /// <summary>
 /// 注册给定接口的默认实现
 /// </summary>
 /// <typeparam name="TService"></typeparam>
 /// <typeparam name="TImpl"></typeparam>
 /// <param name="life"></param>
 public void RegisterDefault <TService, TImpl>(LifeStyle life = LifeStyle.Singleton)
     where TService : class
     where TImpl : class, TService
 {
     _container.RegisterDefault <TService, TImpl>(life);
 }
Example #34
0
 public DependencyAttribute(LifeStyle lifeStyle = LifeStyle.Singleton)
 {
     LifeStyle = lifeStyle;
 }
 public static void RegisterType(Type serviceType, Type implementationType, string serviceName = null, LifeStyle life = LifeStyle.Singleton)
 {
     Current.RegisterType(serviceType, implementationType, serviceName, life);
 }
 protected abstract void internalAdd(string name, Type serviceType, object implementTypeOrInstance, LifeStyle lifeStyle);
 public static void Register <TService, TImplementer>(string serviceName = null, LifeStyle life = LifeStyle.Singleton)
     where TService : class
     where TImplementer : class, TService
 {
     Current.Register <TService, TImplementer>(serviceName, life);
 }
 protected override void internalAdd(string name, Type serviceType, object implementTypeOrInstance, LifeStyle lifeStyle){
     if(lifeStyle==LifeStyle.Singleton){
         Container.RegisterService(name,serviceType,implementTypeOrInstance,new Dictionary<string, string>());
     }else{
         Container.RegisterTransient(name,serviceType,implementTypeOrInstance as Type,new Dictionary<string, string>());
     }
 }
Example #39
0
 public DeasyAttribute(string key = "", LifeStyle lifeStyle = LifeStyle.LifetimeScope)
 {
     Key = key;
     LifeStyle = lifeStyle;
 }