コード例 #1
0
        public IBusinessConfig <IUnityContainer, TBusinessProcess> ConfigureProcess <TBusinessProcessService, TBusinessProcessImplementation>()
            where TBusinessProcessImplementation : TBusinessProcessService
        {
            var config = new UnityBusinessProcessConfig <TBusinessProcess>();

            config.Register(c => c.RegisterType <TBusinessProcessService, TBusinessProcessImplementation>());
            ProcessConfig = config;

            return(this);
        }
コード例 #2
0
        public IBusinessConfig <IUnityContainer, TBusinessProcess> ConfigureProcess <T>(Action <T> actions) where T : IBusinessProcessConfig <IUnityContainer, TBusinessProcess>, new()
        {
            Guard.Against <ArgumentNullException>(Container == null, "Ошибка определения конфигурации Operation: не определен Unity контейнер");

            var config = new T();

            actions(config);
            ProcessConfig = config;
            return(this);
        }
コード例 #3
0
        public IBusinessConfig <IUnityContainer, TBusinessProcess> ConfigureProcess <TBusinessProcessService, TBusinessProcessImplementation>(ConstructorParameterCollection constructorArguments)
            where TBusinessProcessImplementation : TBusinessProcessService
        {
            Guard.Against <ArgumentNullException>(constructorArguments.IsNullOrEmpty(), "Ошибка определения конфигурации Operation: не определены аргументы конструктора");

            var config = new UnityBusinessProcessConfig <TBusinessProcess>();

            config.Register(c => c.RegisterType <TBusinessProcessService, TBusinessProcessImplementation>(new SmartConstructor(constructorArguments)));
            ProcessConfig = config;

            return(this);
        }
コード例 #4
0
        public IBusinessConfig <IUnityContainer, TBusinessProcess> ConfigureProcess <TBusinessProcessService, TBusinessProcessImplementation>(Func <IUnityContainer, TBusinessProcessImplementation> getProcess)
            where TBusinessProcessImplementation : TBusinessProcessService
        {
            Guard.Against <ArgumentNullException>(getProcess == null, "Ошибка определения конфигурации: не определен метод создания процесса");

            var config = new UnityBusinessProcessConfig <TBusinessProcess>();

            config.Register(c => c.RegisterType(typeof(TBusinessProcessService), typeof(TBusinessProcessImplementation), new InjectionFactory((UnCon, tp, s) => getProcess(UnCon))));
            ProcessConfig = config;

            return(this);
        }