You've already forked Sonarr
							
							
				mirror of
				https://github.com/Sonarr/Sonarr.git
				synced 2025-10-31 00:07:55 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| // ReSharper disable RedundantUsingDirective
 | |
| using System;
 | |
| using System.Collections.Generic;
 | |
| using Microsoft.Practices.Unity;
 | |
| using Microsoft.Practices.Unity.ObjectBuilder;
 | |
| 
 | |
| namespace AutoMoq.Unity
 | |
| {
 | |
|     internal class AutoMockingContainerExtension : UnityContainerExtension
 | |
|     {
 | |
|         private readonly IList<Type> registeredTypes = new List<Type>();
 | |
| 
 | |
|         protected override void Initialize()
 | |
|         {
 | |
|             SetEventsOnContainerToTrackAllRegisteredTypes();
 | |
|             SetBuildingStrategyForBuildingUnregisteredTypes();
 | |
|         }
 | |
| 
 | |
|         #region private methods
 | |
| 
 | |
|         private void SetEventsOnContainerToTrackAllRegisteredTypes()
 | |
|         {
 | |
|             Context.Registering += ((sender, e) => RegisterType(e.TypeFrom));
 | |
|             Context.RegisteringInstance += ((sender, e) => RegisterType(e.RegisteredType));
 | |
|         }
 | |
| 
 | |
|         private void RegisterType(Type typeToRegister)
 | |
|         {
 | |
|             registeredTypes.Add(typeToRegister);
 | |
|         }
 | |
| 
 | |
|         private void SetBuildingStrategyForBuildingUnregisteredTypes()
 | |
|         {
 | |
|             var strategy = new AutoMockingBuilderStrategy(registeredTypes, Container);
 | |
|             Context.Strategies.Add(strategy, UnityBuildStage.PreCreation);
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
|     }
 | |
| } |