Esempio n. 1
0
        public static void ConfigureContainer(IObjectContainer container, ApplicationConfiguration config)
        {
            if (config == null || config.ContainerConfiguration == null) return;
            if (container == null) return;

            foreach (object item in config.ContainerConfiguration.Items)
            {
                ObjectContainerAdd add = item as ObjectContainerAdd;
                if (item != null)
                {
                    Type tKey = Type.GetType(add.KeyType, true, true);
                    Type tObj = Type.GetType(add.ObjectType, true, true);

                    container.Register(tKey, Activator.CreateInstance(tObj));
                    continue;
                }

                ObjectContainerRemove remove = item as ObjectContainerRemove;
                if (item != null)
                {
                    throw new NotImplementedException("Removing an object is not supported yet.");
                }

                ObjectContainerClear clear = item as ObjectContainerClear;
                if (item != null)
                {
                    container.Clear();
                    continue;
                }
            }
        }
Esempio n. 2
0
        public static void ConfigureModules(IObjectContainer container, ApplicationConfiguration config)
        {
            if (config == null)
            {
                return;
            }
            if (container == null)
            {
                return;
            }

            foreach (ModuleDefinition moduleDef in config.ModulesConfiguration.Modules)
            {
                Type moduleType = Type.GetType(moduleDef.Type, false, true);
                if (moduleType == null)
                {
                    throw new InvalidOperationException(
                              string.Format("Cannot load type from string \"{0}\".", moduleDef.Type));
                }
                if (!typeof(IModule).IsAssignableFrom(moduleType))
                {
                    throw new InvalidCastException(string.Format("Type {0} does not implements type {1}.", moduleType, typeof(IModule)));
                }

                object module = Activator.CreateInstance(moduleType);
                container.Register(moduleType, module);
            }
        }
Esempio n. 3
0
        public void RegisterTypes(ICoordinator coordinator)
        {
            _container.Register <ICoordinator>(coordinator)
            .WhenInjectedInto(typeof(IController))     // can only be injected into IController
            .In(Lifetime.Container());

            var module = new RegistrationModlule(coordinator.PairManager.ViewControllerPairs);

            _container.RegisterModule(module);
        }
 internal static void Reg(IObjectContainer container)
 {
     // 注册内置访问器
     container
         .Register<IEntityAccessor, HttpEntityAccessor>(EntityAccessorTypes.Http)
         .Register<IEntityAccessor, WebFormEntityAccessor>(EntityAccessorTypes.WebForm)
         .Register<IEntityAccessor, WinFormEntityAccessor>(EntityAccessorTypes.WinForm)
         .Register<IEntityAccessor, BinaryEntityAccessor>(EntityAccessorTypes.Binary)
         .Register<IEntityAccessor, XmlEntityAccessor>(EntityAccessorTypes.Xml)
         .Register<IEntityAccessor, JsonEntityAccessor>(EntityAccessorTypes.Json);
 }
Esempio n. 5
0
        private static IObjectContainer Reg <T>(this IObjectContainer container, Object id = null)
        {
            IDatabase db = TypeX.CreateInstance(typeof(T)) as IDatabase;

            if (id == null)
            {
                id = db.DbType;
            }

            // 把这个实例注册进去,作为默认实现
            return(container.Register(typeof(IDatabase), null, db, id));
        }
Esempio n. 6
0
        private static IObjectContainer Reg<T>(this IObjectContainer container, Object id = null)
        {
            try
            {
                var db = typeof(T).CreateInstance() as IDatabase;
                if (id == null) id = db.Type;

                // 把这个实例注册进去,作为默认实现
                return container.Register(typeof(IDatabase), null, db, id);
            }
            catch (Exception ex)
            {
                XTrace.WriteException(ex);
                throw;
            }
        }
Esempio n. 7
0
        public static void ConfigureModules(IObjectContainer container, ApplicationConfiguration config)
        {
            if (config == null) return;
            if (container == null) return;

            foreach (ModuleDefinition moduleDef in config.ModulesConfiguration.Modules)
            {
                Type moduleType = Type.GetType(moduleDef.Type, false, true);
                if (moduleType == null) 
                    throw new InvalidOperationException(
                        string.Format("Cannot load type from string \"{0}\".", moduleDef.Type));
                if (!typeof(IModule).IsAssignableFrom(moduleType))
                    throw new InvalidCastException(string.Format("Type {0} does not implements type {1}.", moduleType, typeof(IModule)));

                object module = Activator.CreateInstance(moduleType);
                container.Register(moduleType, module);
            }
        }
Esempio n. 8
0
        public static void ConfigureContainer(IObjectContainer container, ApplicationConfiguration config)
        {
            if (config == null || config.ContainerConfiguration == null)
            {
                return;
            }
            if (container == null)
            {
                return;
            }

            foreach (object item in config.ContainerConfiguration.Items)
            {
                ObjectContainerAdd add = item as ObjectContainerAdd;
                if (item != null)
                {
                    Type tKey = Type.GetType(add.KeyType, true, true);
                    Type tObj = Type.GetType(add.ObjectType, true, true);

                    container.Register(tKey, Activator.CreateInstance(tObj));
                    continue;
                }

                ObjectContainerRemove remove = item as ObjectContainerRemove;
                if (item != null)
                {
                    throw new NotImplementedException("Removing an object is not supported yet.");
                }

                ObjectContainerClear clear = item as ObjectContainerClear;
                if (item != null)
                {
                    container.Clear();
                    continue;
                }
            }
        }
Esempio n. 9
0
 public static void Register(Type serviceType, Type implementationType, LifeTime lifetime = LifeTime.Singleton)
 {
     Current.Register(serviceType, implementationType, lifetime);
 }
Esempio n. 10
0
 public static IObjectContainer Register <TInterface, TImplement>(this IObjectContainer container, Object id = null, Int32 priority = 0) => container.Register(typeof(TInterface), typeof(TImplement), null);
Esempio n. 11
0
 public void RegisterExtensionPort <TContract>(IExtensionPort <TContract> port)
 {
     _container.Register(port);
 }
Esempio n. 12
0
 public static void Register <TInterface, TService>(LifeScope lifeScope = LifeScope.Single)
 {
     _container.Register <TInterface, TService>(lifeScope);
 }
Esempio n. 13
0
 public static void RegisterType <TService>(this IObjectContainer objContainer, string strName) where TService : class
 {
     objContainer.Register(f => f.RegisterType <TService>().Named <TService>(strName));
 }
Esempio n. 14
0
 public static void RegisterType(this IObjectContainer objContainer, Type objServiceType, Type objComponentType, string strName, LifetimeStyle iLifetimeStyle)
 {
     objContainer.Register(f => f.RegisterType(objServiceType, objComponentType).Named(strName, objServiceType).Lifetime(iLifetimeStyle));
 }
Esempio n. 15
0
 /// <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
 {
     _container.Register <TService, TImplementer>(life);
 }
Esempio n. 16
0
 public static void RegisterInstance <TService>(this IObjectContainer objContainer, TService objInstance) where TService : class
 {
     objContainer.Register(f => f.RegisterType <TService>(objInstance));
 }
Esempio n. 17
0
 public static void RegisterType <TService, TComponent>(this IObjectContainer objContainer, string strName, LifetimeStyle iLifetimeStyle)
     where TService : class
     where TComponent : class, TService
 {
     objContainer.Register(f => f.RegisterType <TService, TComponent>().Named <TService>(strName).Lifetime(iLifetimeStyle));
 }
Esempio n. 18
0
 public static void RegisterType <TService, TComponent>(this IObjectContainer objContainer)
     where TService : class
     where TComponent : class, TService
 {
     objContainer.Register(f => f.RegisterType <TService, TComponent>());
 }
Esempio n. 19
0
 public static void RegisterType <TService>(this IObjectContainer objContainer, LifetimeStyle iLifetimeStyle) where TService : class
 {
     objContainer.Register(f => f.RegisterType <TService>().Lifetime(iLifetimeStyle));
 }
Esempio n. 20
0
 void InitializeBuilder(IObjectContainer container)
 {
     container.Register <IComponent, SingletonComponent>(LifeStyle.Singleton);
     container.RegisterType(typeof(SingletonComponent), LifeStyle.Singleton);
     container.RegisterType(typeof(SinglecallComponent), LifeStyle.Transient);
 }
Esempio n. 21
0
 public static void RegisterType(this IObjectContainer objContainer, Type objServiceType, Type objComponentType)
 {
     objContainer.Register(f => f.RegisterType(objServiceType, objComponentType));
 }
Esempio n. 22
0
 public static void RegisterType <TService>(this IObjectContainer objContainer) where TService : class
 {
     objContainer.Register(f => f.RegisterType <TService>());
 }
 public static void Register(Type implType)
 {
     _current.Register(implType);
 }
Esempio n. 24
0
 public static void RegisterInstance <TService>(this IObjectContainer objContainer, TService objInstance, string strName, LifetimeStyle iLifetimeStyle) where TService : class
 {
     objContainer.Register(f => f.RegisterType <TService>(objInstance).Named <TService>(strName).Lifetime(iLifetimeStyle));
 }
 /// <summary>注册类型指定名称的实例</summary>
 /// <typeparam name="TInterface">接口类型</typeparam>
 /// <param name="container">对象容器</param>
 /// <param name="instance">实例</param>
 /// <param name="id">标识</param>
 /// <param name="priority">优先级</param>
 /// <returns></returns>
 public static IObjectContainer Register <TInterface>(this IObjectContainer container, Object instance, Object id = null, Int32 priority = 0)
 {
     return(container.Register(typeof(TInterface), null, instance, id, priority));
 }
Esempio n. 26
0
 public static void RegisterGeneric(this IObjectContainer objContainer, Type objService, Type objComponent)
 {
     objContainer.Register(f => f.RegisterGeneric(objService, objComponent).Lifetime(LifetimeStyle.Transient));
 }