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);
        }
        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);
        }
        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);
        }