public static void ClassInit(TestContext context) { var container = new UnityContainer(); DomainUnityContainer.BuildUp(container); InfrastructureUnityContainer.BuildUp(container); UserAppService = container.Resolve <IUserManagementApplicationService>(); }
/// <summary> /// Registers the type mappings with the Unity container. /// </summary> /// <param name="container">The unity container to configure.</param> /// <remarks> /// There is no need to register concrete types such as controllers or /// API controllers (unless you want to change the defaults), as Unity /// allows resolving a concrete type even if it was not previously /// registered. /// </remarks> public static void RegisterTypes(IUnityContainer container) { CoreUnityContainer.BuildUp(container); DomainUnityContainer.BuildUp(container); InfrastructureUnityContainer.BuildUp(container); //container.RegisterType<IControllerFactory, DefaultControllerFactory>(); //container.RegisterType<IControllerActivator, MVCControllerActivator>(); }
public static void ClassInit(TestContext context) { typeof(InfrastructureUnityContainer) .GetField("UnityContainer", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static) .SetValue(null, null); typeof(DomainUnityContainer) .GetField("UnityContainer", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static) .SetValue(null, null); var container = new UnityContainer(); DomainUnityContainer.BuildUp(container); InfrastructureUnityContainer.BuildUp(container); UserRepo = container.Resolve <IUserManagementRepository>(); }
public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext) { var classAttr = input.MethodBase.DeclaringType.GetCustomAttribute <ApplicationServiceTransactionAttribute>(); var methodAttr = input.MethodBase.GetCustomAttribute <ApplicationServiceTransactionAttribute>(); var option = methodAttr?.Option ?? classAttr?.Option ?? TransactionScopeOption.Required; var timeout = methodAttr?.Timeout ?? classAttr?.Timeout ?? 0; IMethodReturn result = null; try { if (classAttr != null || methodAttr != null) { using (var tran = new TransactionScope(option, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, Timeout = TimeSpan.FromSeconds(timeout) })) { result = getNext()(input, getNext); DomainUnityContainer.Resolve <ITyrionBankerDbConnection>("TyrionBankerDB").Close(); if (result.Exception == null) { tran.Complete(); } } } else { result = getNext()(input, getNext); } } catch (Exception e) { new TyrionBankerLogger(input.MethodBase.DeclaringType.FullName).Error(e); throw; } return(result); }
/// <summary> /// Registers the type mappings with the Unity container. /// </summary> /// <param name="container">The unity container to configure.</param> /// <remarks> /// There is no need to register concrete types such as controllers or /// API controllers (unless you want to change the defaults), as Unity /// allows resolving a concrete type even if it was not previously /// registered. /// </remarks> public static void RegisterTypes(IUnityContainer container) { CoreUnityContainer.BuildUp(container); DomainUnityContainer.BuildUp(container); InfrastructureUnityContainer.BuildUp(container); }