protected override object CreateContainer(Type t) { var container = new ServiceContainer(); container.Register(t); container.Compile(); return(container); }
public void ShouldLogWarningWhenCompileOpenGenericService() { var options = new ContainerOptions(); var log = new List <LogEntry>(); options.LogFactory = (type) => (e) => log.Add(e); var container = new ServiceContainer(options); container.Register(typeof(OpenGenericFoo <,>)); container.Compile(); Assert.Contains(log, e => e.Level == LogLevel.Warning && e.Message.Matches("Unable to precompile.*OpenGenericFoo")); }
public void ShouldCompileServicesAccordingToPredicate() { var options = new ContainerOptions(); var log = new List <LogEntry>(); options.LogFactory = (type) => (e) => log.Add(e); var container = new ServiceContainer(options); container.Register <IBar, Bar>(); container.Register <IFoo, FooWithDependency>(); container.Compile(sr => sr.ServiceType == typeof(IBar)); Assert.Contains(log, e => e.Level == LogLevel.Info && e.Message.Matches("Compiling delegate.*IBar")); Assert.DoesNotContain(log, e => e.Level == LogLevel.Info && e.Message.Matches("Compiling delegate.*IFoo")); }
public void ShouldCompileNamedService() { var options = new ContainerOptions(); var log = new List <LogEntry>(); options.LogFactory = (type) => (e) => log.Add(e); var container = new ServiceContainer(options); container.Register <IFoo, Foo>("SomeFoo"); container.Compile(); Assert.Contains(log, e => e.Level == LogLevel.Info && e.Message.Matches("Compiling delegate.*IFoo.*SomeFoo")); log.Clear(); container.GetInstance <IFoo>(); Assert.DoesNotContain(log, e => e.Level == LogLevel.Info && e.Message.Matches("Compiling delegate.*IFoo.*SomeFoo")); }
public void ShouldCompileNamedOpenGenericService() { var options = new ContainerOptions(); var log = new List <LogEntry>(); options.LogFactory = (type) => (e) => log.Add(e); var container = new ServiceContainer(options); container.Register(typeof(OpenGenericFoo <,>), typeof(OpenGenericFoo <,>), "OpenGenericFoo"); container.Compile <OpenGenericFoo <string, int> >("OpenGenericFoo"); log.Clear(); container.GetInstance <OpenGenericFoo <string, int> >("OpenGenericFoo"); Assert.DoesNotContain(log, e => e.Level == LogLevel.Info && e.Message.Matches("Compiling delegate.*OpenGenericFoo")); }
private void RegisterComponents() { //Services var viewModelFactory = new ViewModelFactory(_container, _logger); _container.RegisterInstance(typeof(IViewModelFactory), viewModelFactory); var modelFactory = new ModelFactory(_container, _logger); _container.RegisterInstance(typeof(IModelFactory), modelFactory); _container.Register <IBinarySerializer, ProtobufSerializer>(new PerContainerLifetime()); _container.Register <IVectorCanvasLoader, VectorCanvasLoader>(new PerContainerLifetime()); _container.Register <IRasterLoader, RasterLoader>(new PerContainerLifetime()); _container.Register <ICanvasOperationService, CanvasOperationService>(new PerContainerLifetime()); _container.Register <ByteCompressor>(new PerContainerLifetime()); var shapeProvider = new ShapeProvider( _container.GetInstance <IBinarySerializer>(), _container.GetInstance <ByteCompressor>(), _container.GetInstance <ICanvasOperationService>()); _container.RegisterInstance <IShapeProvider>(shapeProvider); _container.RegisterInstance <ICanvasHistoryManager>(shapeProvider); _container.RegisterInstance(AppColorService.GetInstance); //ViewModels _container.Register <MainWindowViewModel>(); _container.Register <CommandPanelViewModel>(); _container.Register <CanvasViewModel>(); _container.Register <Shape, PropertiesPanelViewModel>( (factory, model) => new PropertiesPanelViewModel(model, factory.GetInstance <AppColorService>())); //Models _container.Register <RectangleShape>(); _container.Register <PolylineShape>(); _container.Compile(); }