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