public IBusinessConfig <IUnityContainer, TBusinessProcess> ConfigureOperationParameter <TService, TImplementation>(ConstructorParameterCollection constructorArguments, bool updateIfExist = false) where TImplementation : TService { Guard.Against <ArgumentNullException>(Container == null, "Ошибка определения конфигурации Operation: не определен Unity контейнер"); Guard.Against <ArgumentNullException>(constructorArguments.IsNullOrEmpty(), "Ошибка определения конфигурации Operation: не определены аргументы конструктора"); string operationName = typeof(TService).FullName; var config = new UnityBusinessOperationConfig(); config.Register(c => c.RegisterType <TService, TImplementation>(new SmartConstructor(constructorArguments))); if (updateIfExist) { BusinessOperationConfigs.Update(operationName, config); } else { BusinessOperationConfigs.New(operationName, 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> ConfigureSingletonParameter <TService, TImplementation>(string operationName, ConstructorParameterCollection constructorArguments, bool updateIfExist = false) where TImplementation : TService { Guard.Against <ArgumentNullException>(Container == null, "Ошибка определения конфигурации Operation: не определен Unity контейнер"); //Guard.Against<ArgumentNullException>(implementation==null, "Ошибка определения конфигурации Operation: не определен объект implementation"); var config = new UnityBusinessOperationConfig(); config.Register(c => c.RegisterType <TService, TImplementation>(operationName, new ContainerControlledLifetimeManager(), new SmartConstructor(constructorArguments))); if (updateIfExist) { BusinessOperationConfigs.Update(operationName, config); } else { BusinessOperationConfigs.New(operationName, config); } return(this); }